问题是我给定的fixture函数有一个外部依赖,并导致"错误" (如无法访问的网络/资源不足等)。
我想跳过夹具,跳过任何依赖于这个夹具的测试。
做这样的事情不会起作用:
import pytest
@pytest.mark.skip(reason="Something.")
@pytest.fixture(scope="module")
def parametrized_username():
raise Exception("foobar")
return 'overridden-username'
这将导致
_______________________________ ERROR at setup of test_username _______________________________
@pytest.mark.skip(reason="Something.")
@pytest.fixture(scope="module")
def parametrized_username():
> raise Exception("foobar")
E Exception: foobar
a2.py:6: Exception
什么是立即跳过pytest灯具?
答案 0 :(得分:2)
是的,你可以轻松地做到这一点:
$ pytest -v -s -ra r.py
r.py::test_me SKIPPED
=========== short test summary info ===========
SKIP [1] .../r.py:6: Because I want so
=========== 1 skipped in 0.01 seconds ===========
pytest.skip()
在内部,Skipped
函数会引发异常OutcomeException
,该异常继承自pytest.fail()
。这些异常是专门用于模拟测试结果,但不会使测试失败(类似于forwardMessage
)。