我已经编写了我的程序 MachineSettings_test.py 的单元测试,格式如下:
import unittest
import MachineSettings as MS
class TestMachineSettings(unittest.TestCase):
def setUp(self):
[...]
def testStringRepresentation(self):
[...]
def testCasDict(self):
[...]
if __name__=="__main__":
unittest.main()
我对以下事实感到有点困惑: 如果我跑
python -m unittest -v MachineSettings_test
我得到输出
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
即Python 无法识别单元测试模块中的测试。
但如果我只是跑
python MachineSettings_test.py
一切正常,我得到了输出
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
这让我很困惑,我在这里找不到任何类似的问题,所以我发布了它。
我(被迫)使用的 Python 版本是 2.6,但我在文档中找不到任何使这种情况变得特殊的内容。
有什么想法吗?
谢谢
最佳答案
来自documentation :
Changed in version 2.7: In earlier versions it was only possible to run individual test methods and not modules or classes.
并且您正在尝试使用 python 2.6 对整个模块运行测试。
显然你甚至不能在 python 2.6 中使用 -m unittest
从单独的测试方法运行。看这个question了解详情。
关于Python 单元测试调用困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16219358/