如何将测试标记为“长”并跳过它们?

Mar*_*oma 7 python pytest tox python-decorators

tox我通常使用which 调用来运行测试pytest。这种设置在许多项目中都运行良好。然而,在某些项目中,我有一些需要很长时间(几分钟)的测试。我不想每次都运行它们。我想装饰测试一样长。

像这样的东西:

$ tox --skip-long
Run Code Online (Sandbox Code Playgroud)

和

$ tox --skip-long
Run Code Online (Sandbox Code Playgroud)

Mar*_*oma 10

我在这里找到了一半的答案:

@pytest.mark.long
Run Code Online (Sandbox Code Playgroud)

并执行

pytest -v -m "not long"
Run Code Online (Sandbox Code Playgroud)

要在 tox 上运行它(来源):

tox -- -m "not long"
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

============================ 2 tests deselected ==================================
========== 20 passed, 2 deselected, 7 warnings in 151.93 seconds =================
Run Code Online (Sandbox Code Playgroud)