我一直在寻找一种在运行时运行选择性测试的方法。发现每个测试都可以使用@pytest.mark
进行标记。
import ...
@pytest.mark.feature1
@pytest.mark.priority1
or something like : @pytest.mark(Feature.feature1, Priority.priority2)
def m1
def m2
..
现在我需要运行标记为feature1
的测试脚本,而不提供脚本名称。
像(不确定命令)
py.test -m "feature1"
它应该选择在测试套件中标记为feature1
的所有脚本,因为其他脚本也可能被标记为feature2..n
。
请建议:
谢谢!
答案 0 :(得分:1)
我认为你正在寻找的是py.test的 -m 选项。
用不同标签标记测试后(使用@ pytest.mark。标签,其中标签是feature1或任何你想要的),你可以运行所有标记的feature1测试使用:
py.test -m feature1
这将仅运行标有' feature1'的测试。标签
可以合并标记的测试:
py.test -m "feature1 or feature2"
或使用not
跳过,例如
py.test -m "not (feature1 or feature2)"
答案 1 :(得分:0)
我认为您正在寻找@pytest.mark.skipif 这将根据您放入标记的条件跳过测试。您可以在if条件中使用字符串跳过所需的测试
答案 2 :(得分:0)
好的,在这种情况下,这可能是答案 pytest -k string 选择包含其名称中的字符串并运行它的所有测试