Python unittest:TestSuite只运行第一个TestCase

1 投票
2 回答
677 浏览
提问于 2025-04-18 11:42

单独运行 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

不要使用:

 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() 函数。

撰写回答