我通常不使用unittest
命令行,但是有自己的测试运行脚本。
def suite():
return unittest.TestLoader().loadTestsFromTestCase(BasicTests)
然后称它为python -m unittest mytest.suite
。但是后来我遇到了以下问题:
TypeError: calling <function suite at 0x00C1FB70> returned <unittest.TestSuite tests=[<mysite.BasicTests testMethod=test_ok>]>, not a test
发生这种情况是因为unittest
使用了类似的东西,isinstance(mytest.suite(), TestSuite)
但是通过执行-m
,您得到了TestSuite
该类的两个不同版本(一个是__main__.TestSuite
,另一个是unittest.TestSuite
),因此isinstance
返回false。 对我来说,这似乎是一个错误。unittest.py
通过from unittest import TestSuite, TestCase
在开始时插入进行修补即可loadTestsFromName
解决isinstance
问题。抱歉,我不能给您“ 正确的 ”解决方案(如果有)。