是否有办法从文件中选择要运行的pytest测试?
例如,文件foo.txt包含要执行的测试列表:
tests_directory/foo.py::test_001
tests_directory/bar.py::test_some_other_test
或者,是否有一种方法可以从pytest的不同目录中选择多个测试,测试名称中没有公共模式?
Pytest -k <pattern>允许单个模式。
一种选择是做尿检。针对每个测试进行标记,但我的要求是运行来自不同文件的不同测试组合。
是否有办法为每个模式指定多个模式和一个测试文件名?
Or
是否有一种方法可以在文件中指定准确的测试路径,并将该文件作为输入提供给pytest?
Or
是否有可以用于此目的的钩子函数?
这是一个可能的部分答案,因为它只允许选择测试脚本,而不是那些脚本中的单个测试。
而且它也受到我使用遗留兼容模式与unittest脚本的限制,所以不能保证它可以与本机pytest一起工作。
是:
创建一个新目录,比如subset_tests_directory。
Ln -s tests_directory/foo.py
Ln -s tests_directory/bar.py
对于那些隐式假设文件在test_directory中的导入,要小心。我必须通过在subset_tests_directory中运行python foo.py来修复其中的几个问题,并根据需要进行纠正。
一旦测试脚本正确执行,只需cd subset_tests_directory和pytest即可。Pytest只会选取它看到的脚本。
另一种可能是在当前测试目录中进行符号链接,比如ln -s foo.py subset_foo.py然后pytest子集*.py。这将避免需要调整导入,但它会使事情变得混乱,直到您删除符号链接。对我来说也是如此。