Python unittest:TestSuite只运行第一个TestCase
单独运行 first_TestCase
和 second_TestCase
都没有问题。可是当我创建了一个测试套件(TestSuite)后,它只运行了 first_TestCase
。这是为什么呢?
import unittest
from first_TestCase import first_TestCase
from second_TestCase import second_TestCase
def suite():
suite = unittest.TestSuite()
suite.addTest(first_TestCase())
suite.addTest(second_TestCase())
return suite
if __name__ == "__main__":
suite = unittest.defaultTestLoader.loadTestsFromTestCase(first_TestCase)
unittest.TextTestRunner().run(suite)
2 个回答
0
不要使用:
if __name__ == "__main__":
suite = unittest.defaultTestLoader.loadTestsFromTestCase(first_TestCase)
unittest.TextTestRunner().run(suite)
我应该使用:
if __name__ == "__main__":
unittest.main()
1
你在说:
if __name__ == "__main__":
suite = unittest.defaultTestLoader.loadTestsFromTestCase(first_TestCase)
unittest.TextTestRunner().run(suite)
你在运行测试之前,只是从 first_TestCase
加载测试。你根本没有调用到那个 suite() 函数。
你应该这样做:
if __name__ == "__main__":
unittest.TextTestRunner().run(suite())
因为在你现在的实现中,你没有调用 suite() 函数。