我正在尝试编写套件测试代码,我有一个模块正确运行单元测试,但我打算添加更多模块并立即测试它们,所以我编写了以下代码:
#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
它没有找到任何测试,我的代码出了什么问题?
答案 0 :(得分:4)
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