Python unittest:TestSuite只运行第一个TestCase

时间:2014-07-01 11:02:41

标签: python unit-testing python-unittest

分别运行first_TestCasesecond_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 :(得分:1)

你在说:

if __name__ == "__main__":
    suite = unittest.defaultTestLoader.loadTestsFromTestCase(first_TestCase)
    unittest.TextTestRunner().run(suite)

您在通过first_TestCase运行之前仅从TextTestRunner加载测试。你永远不会去那个suite()函数。

你应该这样做:

if __name__ == "__main__":
    unittest.TextTestRunner().run(suite())

因为你没有在当前的实现中调用suite()函数。

答案 1 :(得分:0)

而不是:

 if __name__ == "__main__":
     suite = unittest.defaultTestLoader.loadTestsFromTestCase(first_TestCase)
     unittest.TextTestRunner().run(suite)

我应该使用:

 if __name__ == "__main__":
     unittest.main()