Python套件测试不运行测试

时间:2012-08-10 21:21:49

标签: python unit-testing

我正在尝试编写套件测试代码,我有一个模块正确运行单元测试,但我打算添加更多模块并立即测试它们,所以我编写了以下代码:

#main.py

import unittest
from test.Services import TestOS

if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTests( TestOS.TestOS() )
    unittest.TextTestRunner().run(suite)

TestOS.py

import unittest
from app.Services.OS import OS

class TestOS(unittest.TestCase):
    os = OS()
    def setUp(self):
        pass
    def tearDown(self):
        pass
    def testOSName(self):
        self.assertEquals(self.os.getPlatform(), 'Windows')    
    def testOSVersion(self):
        self.assertEquals(self.os.getVersion(), '7')

if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    unittest.main()

运行后,我得到了这个输出:

Finding files... done.
Importing test modules ... done.

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

它没有找到任何测试,我的代码出了什么问题?

2 个答案:

答案 0 :(得分:4)

仅当您的测试用例包含runTest()函数时,

suite.addTest( TestOS.TestOS() )才有效。 否则,您需要一个“TestLoader”来检测以“test *”开头的TestOS的功能。

#main.py

import unittest
from test.Services import TestOS

if __name__ == '__main__':
    suite = unittest.TestSuite()
    tests = unittest.defaultTestLoader.loadTestsFromTestCase(TestOS)
    suite.addTests(tests)
    unittest.TextTestRunner().run(suite)

答案 1 :(得分:0)

修改你的setUp方法如下

def setUp(self):
    self.os = OS()
    pass