unittest_Test Discovery
Unittest支持简单的Test Discovery。为了与Test Discovery兼容,所有的测试文件都必须是从项目的顶级目录中导入的模块或包(这意味着它们的文件名必须是有效的标识符)。
Test Discovery是在testloader.discover()中实现的,但是也可以从命令行中使用。基本的命令行用法是:
cd project_directory python -m unittest discover
discover
发现子命令有以下选项:
-v
,
--verbose
-
详细输出
-s
,
--start-directory
directory
-
开始发现的目录(. 默认)
-p
,
--pattern
pattern
-
匹配测试文件的模式(默认
test*.py
)
-t
,
--top-level-directory
directory
-
项目的顶级目录 (默认开始目录)
-s-p和-t选项可以作为位置参数在该顺序中传递。以下两个命令行是等价的:
python -m unittest discover -s project_directory -p "*_test.py" python -m unittest discover project_directory "*_test.py"
除了作为一条路径,还可以传递一个包名,例如myproject.subpackage.test,作为开始目录。您提供的包名将被导入,它在文件系统上的位置将被用作开始目录。
警告:Test Discovery通过导入它们来加载测试。一旦测试发现找到了您指定的开始目录中的所有测试文件,就会将路径转换为要导入的包名。例如foo / bar /baz。py将作为foo.bar.baz导入。