Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从模块运行测试_Python_Unit Testing_Import_Tdd_Python Unittest - Fatal编程技术网

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

我试图从我认为是一个模块的地方运行一些python单元测试。我有一个目录结构,如

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

查找并运行包中的所有测试。

很好,谢谢。我缺少的是导入功能