使用 pytest,我正在使用 library 设置依赖项pytest-dependency
。我还在这些测试中添加了标记。这是一个ECM:
# test_test.py
import pytest
@pytest.mark.dependency()
def test_a():
assert True
@pytest.mark.category
@pytest.mark.dependency(depends=['test_a'])
def test_b():
assert True
使用pytest.ini
文件设置标记:
; pytest.ini
[pytest]
markers =
category: category of tests.
当我尝试使用标记运行测试时,因为它取决于test_a
哪个没有标记category
,所以它被跳过:
user@pc → [~/Documents/test] $ pytest -vv -k category
============================================== test session starts ===============================================
platform darwin -- Python 3.9.8, pytest-6.2.5, py-1.11.0, pluggy-1.0.0 -- /usr/local/opt/python@3.9/bin/python3.9
cachedir: .pytest_cache
rootdir: /Users/saigre/Documents/test, configfile: pytest.ini
plugins: dependency-0.5.1
collected 2 items / 1 deselected / 1 selected
test_test.py::test_b SKIPPED (test_b depends on test_a) [100%]
======================================== 1 skipped, 1 deselected in 0.05s ========================================
由于依赖关系,有没有办法强制运行。test_a
一个解决方案是将标记添加到第一个测试中,但对于我正在处理的情况来说会很复杂......
编辑@MrBean Bremen:我做了一个依赖方案的例子 如果我想在测试中添加一个标记,我必须把这个标记放在所有的分支上,并且“根”会有很多标记。不是做起来复杂,而是繁琐。