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 如何使用一个shell命令运行所有测试?_Python_Unit Testing - Fatal编程技术网

Python 如何使用一个shell命令运行所有测试?

Python 如何使用一个shell命令运行所有测试?,python,unit-testing,Python,Unit Testing,假设我有几个模块,其中的测试用例来自unittest.TestCase。所有这些模块都驻留在一个包中测试: test/ test_case1.py test_case2.py test_case3.py 我想用一个shell命令运行test中所有模块中的所有测试。为了做到这一点,我添加了一个新模块test\u all.py,它创建了一个包含所有测试用例的TestSuite,以及main: def make_suite(): ... # add test cases exp

假设我有几个模块,其中的测试用例来自
unittest.TestCase
。所有这些模块都驻留在一个包中
测试

test/
   test_case1.py
   test_case2.py
   test_case3.py
我想用一个shell命令运行
test
中所有模块中的所有测试。为了做到这一点,我添加了一个新模块
test\u all.py
,它创建了一个包含所有测试用例的
TestSuite
,以及
main

def make_suite():
  ... # add test cases explicitly one by one

if __name__ == "__main__":
  suite = make_suite()
  unittest.TextTestRunner().run(suite)

现在我想知道是否有一种方法可以运行
test
中的所有测试用例,而不必从Python 2.7开始创建
TestSuite

,您可以这样做:

python -m unittest discover <test_directory>
python-m单元测试发现
当然,您的所有测试目录都必须包含一个
\uuuu init\uuuu.py
文件

您还可以使用类似的工具来运行测试

另见:


从Python 2.7开始,您可以执行以下操作:

python -m unittest discover <test_directory>
python-m单元测试发现
当然,您的所有测试目录都必须包含一个
\uuuu init\uuuu.py
文件

您还可以使用类似的工具来运行测试

另见:


您是否反对使用像
nosetests
这样的工具?如果不是绝对必要,则反对使用像
nosetests
这样的工具?如果不是绝对必要,则反对使用。非常感谢。
discover
解决方案可能正是我所需要的。太好了。如果它最终成功了,我希望你能接受这个答案。非常感谢。
discover
解决方案可能正是我所需要的。太好了。如果它最终奏效,我希望你会接受答案