使用py.test但在命令行中排除测试列表?

gue*_*tli 2 python pytest python-unittest

我想用py.test排除一个列表(大约5项)的测试.

我想通过命令行将此列表提供给py.test.

我想避免修改源代码.

怎么做?

geo*_*xsh 7

您可以使用选择表达式的测试,选项是-k.如果您有以下测试:

def test_spam():
    pass

def test_ham():
    pass

def test_eggs():
    pass
Run Code Online (Sandbox Code Playgroud)

用以下方法调用pytest:

pytest -v -k 'not spam and not ham' tests.py
Run Code Online (Sandbox Code Playgroud)

你会得到:

collected 3 items

pytest_skip_tests.py::test_eggs PASSED             [100%]

=================== 2 tests deselected ===================
========= 1 passed, 2 deselected in 0.01 seconds =========
Run Code Online (Sandbox Code Playgroud)