Python unittest调用混乱

时间:2013-04-25 15:52:23

标签: python unit-testing

我已经编写了一个以下形式的程序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无法识别unittesting模块中的测试。

但如果我只是跑

python MachineSettings_test.py

一切正常,我得到输出

..
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

这让我感到困惑,我在这里找不到任何类似的问题,所以我发布了它。

我(被迫使用)的Python版本是2.6,但我在文档中找不到任何使这个案例变得特殊的东西。

有人有想法吗?

由于

1 个答案:

答案 0 :(得分:4)

来自documentation

  

在2.7版本中更改:在早期版本中,只能运行单独的测试方法,而不能运行模块或类。

你正试图用python 2.6运行整个模块的测试。

显然你甚至无法在python 2.6中使用-m unittest运行单独的测试方法。有关详细信息,请参阅此question

您可能想尝试nosenose2