我想在使用pytest. 通常,我想检查测试是否可以访问某些可执行文件,以及用户在命令行上提供的选项是否有效。我发现的最接近的事情是使用固定装置,例如:@pytest.fixture(scope="session", autouse=True)def sanity_check(request): if not good: sys.exit(0)但这仍然运行所有测试。我希望脚本在尝试运行测试之前失败。
2 回答
慕田峪9158850
TA贡献1794条经验 获得超7个赞
您不需要显式验证命令行选项;这将由 arg 解析器完成,如有必要,它将提前中止执行。至于条件检查,您离解决方案不远了。用
pytest.exit
立即中止pytest.skip
跳过所有测试pytest.xfail
使所有测试失败(尽管这是预期的失败,因此它不会将整个执行标记为失败)
示例夹具:
@pytest.fixture(scope='session', autouse=True)
def precondition():
if not shutil.which('spam'):
# immediate shutdown
pytest.exit('Install spam before running this test suite.')
# or skip each test
# pytest.skip('Install spam before running this test suite.')
# or make it an expected failure
# pytest.xfail('Install spam before running this test suite.')
添加回答
举报
0/150
提交
取消