Pytest CLI:如何按名称忽略测试用例?

时间:2017-09-30 10:03:11

标签: python command-line pytest

用户可以运行如下的测试用例

python /test/submit.py --pytest-args "test/cases/"

这将作为

运行
pytest.main("test/cases/")`

submit.py argparse parse参数需要('--pytest-args', default='', type=str)

submit.py是一个模块,其中一个def [如initiate_test()]将按空格分割 - pytest-args ,并根据相同的分割运行pytest < EM> - pytest-ARGS

现在我希望以忽略 test_name 的方式传递--pytest-args

-ignore-k没有按照我的预期行事。

以下是我尝试-ignore-k的方式。

-ignore似乎仅限于目录&amp;模块。

python /test/submit.py --pytest-args "test/cases/ --ignore=test/cases/test.py::test_class::test_name"

虽然-k=test_name选择性地运行,但-k!=test_name没有取消选择。

`python /test/submit.py --pytest-args "test/cases/ -k!=test_name"`

我还尝试使用

a='-k not (test_name)'之类的shell参数
python /test/submit.py --pytest-args "test/cases/ $a" 

这不起作用,因为 $ a 中有空格。

注意:我无法访问 test.py submit.py ,因此我无法使用标记。所以解决方案应该是CLI。

1 个答案:

答案 0 :(得分:3)

使用python /test/submit.py --pytest-args "test/cases/ -k-test_name

注意,当传递给-参数时,要跳过的测试以-k开头。