1

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

#main.py

import unittest
from test.Services import TestOS

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

测试操作系统.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

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

4

2 回答 2

4

suite.addTest( TestOS.TestOS() )仅当您的测试用例包含 runTest() 函数时才有效。否则你需要一个“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)
于 2012-08-10T22:00:02.023 回答
0

修改你的setUp方法如下

def setUp(self):
    self.os = OS()
    pass
于 2012-08-11T05:04:50.627 回答