添加一个没有破折号的pytest选项?

时间:2018-05-01 18:04:23

标签: python pytest

我有很多测试需要很长时间才能运行。幸运的是,这些测试所花费的时间均匀分布在我项目的几个子系统的测试中。

我正在使用IPython的pytest魔术命令。我希望能够说出像

这样的话
pytest potato_peeler --donttesti18n --runstresstests 

pytest garlic_squeezer --donttestsmell --logperfdata

但我无法像garlic_squeezer等那样添加potato_peelerlogperfdata选项,因为如果选项 parser.addoption会感到沮丧名称不以--开头。

我知道这似乎有点不方便,但我有很多人每天都会多次运行这些测试,并且我喜欢他们被调用的方式尽可能多地通过模拟在命令行上发出命令的方式(命令,你想要运行命令的东西,然后是--flags。)

有没有办法有非虚线选项? (这并不涉及编写一个覆盖选项解析的完整pytest插件?)

我希望使用pytest_commandline_parse挂钩但you can't use that hook in a conftest.py,你必须编写一个完整的插件。

1 个答案:

答案 0 :(得分:0)

您可以标记测试并仅运行带有某些标记的测试。

例如:

import pytest

@pytest.mark.runstresstests
def test_stress_something():
    pass

@pytest.mark.logperfdata
def test_something_quick():
    pass

...

如果您只想进行压力测试:pytest -m runstresstests

https://docs.pytest.org/en/latest/example/markers.html

的完整文档