我想为我的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}}?
提前致谢
我不想安装任何其他模块
答案 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)