使用python unittest对多个测试文件进行一次总结

时间:2016-08-28 08:32:37

标签: python-2.7 unit-testing

我想为我的python项目进行自动化测试,但我不确定使用import unittest class SampleTest(unittest.TestCase): def testMethod(self): # Assertion here if __name__ == "__main__": unittest.main() 模块的正确方法。

我的所有测试文件目前都在一个文件夹中,格式为:

find ./tests -name "*_test.py" -exec python {} \;

然后我跑

.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

当有三个测试文件时,它会输出

Ran 5 tests in 0.001s

它为每个测试文件打印了一个摘要。所以问题是我该怎么做才能使它只打印一个测试摘要,例如{{1}}?

提前致谢

我不想安装任何其他模块

1 个答案:

答案 0 :(得分:3)

您正在多次调用Python,并且每个进程都不了解其余部分。您需要运行一次Python并使用unittest discover mechanism。

在shell中运行:

python -m unittest discover

根据您的项目结构和命名约定,您可能需要调整发现参数,例如:更改--pattern选项,如帮助中所述:

Usage: python -m unittest discover [options]

Options:
  -h, --help            show this help message and exit
  -v, --verbose         Verbose output
  -f, --failfast        Stop on first fail or error
  -c, --catch           Catch Ctrl-C and display results so far
  -b, --buffer          Buffer stdout and stderr during tests
  -s START, --start-directory=START
                        Directory to start discovery ('.' default)
  -p PATTERN, --pattern=PATTERN
                        Pattern to match tests ('test*.py' default)
  -t TOP, --top-level-directory=TOP
                        Top level directory of project (defaults to start
                        directory)

虽然您说我不想安装任何其他模块,但我仍然建议您使用其他测试运行器。很少有人,pytestnose等等。