Python 从模块运行测试
我试图从我认为是一个模块的地方运行一些python单元测试。我有一个目录结构,如Python 从模块运行测试,python,unit-testing,import,tdd,python-unittest,Python,Unit Testing,Import,Tdd,Python Unittest,我试图从我认为是一个模块的地方运行一些python单元测试。我有一个目录结构,如 TestSuite.py UnitTests |__init__.py |TestConvertStringToNumber.py 在testsuite.py中,我有 import unittest import UnitTests class TestSuite: def __init__(self): pass print "Starting testting" suit
TestSuite.py
UnitTests
|__init__.py
|TestConvertStringToNumber.py
在testsuite.py中,我有
import unittest
import UnitTests
class TestSuite:
def __init__(self):
pass
print "Starting testting"
suite = unittest.TestLoader().loadTestsFromModule(UnitTests)
unittest.TextTestRunner(verbosity=1).run(suite)
这看起来启动了测试,但它没有在TestConvertNumberToString.py中拾取任何测试。在那个类中,我有一组以“test”开头的函数
我应该怎么做才能让运行python TestSuite.py真正启动UnitTests中的所有测试 以下是一些代码,它们将运行目录中的所有单元测试:
#!/usr/bin/env python
import unittest
import sys
import os
unit_dir = sys.argv[1] if len(sys.argv) > 1 else '.'
os.chdir(unit_dir)
suite = unittest.TestSuite()
for filename in os.listdir('.'):
if filename.endswith('.py') and filename.startswith('test_'):
modname = filename[:-2]
module = __import__(modname)
suite.addTest(unittest.TestLoader().loadTestsFromModule(module))
unittest.TextTestRunner(verbosity=2).run(suite)
如果您将其命名为testsuite.py,那么您将按如下方式运行它:
testsuite.py UnitTests
使用Twisted的“试用版”测试运行程序,您可以摆脱TestSuite.py,只需执行以下操作:
$ trial UnitTests.TestConvertStringToNumber
在命令行上;或者,更好的是,只是
$ trial UnitTests
查找并运行包中的所有测试。很好,谢谢。我缺少的是导入功能