2013-04-25 146 views
3

我写了下面的表格中我的一个程序MachineSettings_test.py的单元测试:Python的单元测试调用混乱

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不承认测试插件ide单元测试模块。

但如果我只是运行

python MachineSettings_test.py 

一切正常,我得到的输出

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

OK 

这是令人困惑的我,我找不到任何类似的问题在这里,所以我贴它。

我(被强迫要)使用的Python版本是2.6,但是在文档中我找不到任何使这种情况变得特别的东西。

任何想法?

感谢

回答

4

documentation

改变在2.7版:在早期版本中它只是可以运行独立的测试方法,而不是模块或类。

而你正在尝试使用python 2.6运行整个模块的测试。

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

您可能想尝试nosenose2

+0

这是如何回答这个问题的? – delnan 2013-04-25 15:56:17

+0

他使用2.6并且想要运行'python -m unittest -v MachineSettings_test',即在一个模块上。 – gatto 2013-04-25 15:57:16

+0

哦,对。 (你可能想在答案中指出这一点。) – delnan 2013-04-25 15:58:11