Python套件测试不运行测试
我想编写一个套件测试,我有一个模块正确运行单元测试,但我打算添加更多模块并立即测试它们,所以我编码了以下代码:Python套件测试不运行测试
#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
它没有没有找到任何测试,我的代码有什么问题?
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)
我改变了我的代码,但仍然没有运行测试,你确定它是正确的吗? – dextervip 2012-08-10 22:22:22
我测试过它,但我没有完整的代码。也许你需要unittest.defaultTestLoader.loadTestsFromTestCase(TestOS.TestOS)? – Vortexfive 2012-08-10 22:26:19
奇怪我不能让它工作。 – dextervip 2012-08-11 02:41:39
修改您的设置方法如下
def setUp(self):
self.os = OS()
pass
为什么这会有所作为? (唯一的原因是它会产生任何变化,如果为程序的同一运行实例化多个'TestOS'并且操作系统在这些实例之间实际发生变化,这听起来难以置信)。 – 2012-08-11 05:59:20
包括在您的文章你的测试代码。 – 2012-08-10 21:31:42
@BrendenBrown完成! – dextervip 2012-08-10 21:37:27