我通过以下方式构建了我的 pytest 类:
class Test_Exit_Code(object):
def setup_class(cls):
If 2==2:
# stop execution of the test class
def test_a(self):
assert True==True
正如您在 setup_class 方法中看到的那样,我插入了一个 IF ,我想在 if 部分实现的是,如果某个条件似乎为 true 而不是注释,我想返回退出代码 5 ,即没有测试被收集了。 到目前为止我还没有找到任何方法来做到这一点。
您可以尝试致电
pytest.exit()
。另外,您似乎缺少 classmethod
装饰器
import pytest
class Test_Exit_Code:
@classmethod
def setup_class(cls):
if 2==2:
pytest.exit("test exit code setup failed", returncode=5)
def test_this_wont_run(self):
assert True
def test_neither_does_this(self):
assert False
输出:
>python -m pytest test.py
============================================= test session starts =============================================
platform win32 -- Python 3.9.12, pytest-7.1.1, pluggy-1.0.0
rootdir: E:\Tane\Tiedostot\Ohjelmointi\anr_rotated
plugins: anyio-3.5.0
collected 2 items
test.py
============================================ no tests ran in 0.31s ============================================
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! _pytest.outcomes.Exit: test exit code setup failed !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!