猿问

在使用 pytest 运行测试之前执行完整性检查

我想在使用pytest. 通常,我想检查测试是否可以访问某些可执行文件,以及用户在命令行上提供的选项是否有效。


我发现的最接近的事情是使用固定装置,例如:


@pytest.fixture(scope="session", autouse=True)

def sanity_check(request):

  if not good:

     sys.exit(0)


但这仍然运行所有测试。我希望脚本在尝试运行测试之前失败。


慕虎7371278
浏览 141回答 2
2回答

慕田峪9158850

您不需要显式验证命令行选项;这将由 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.')
随时随地看视频慕课网APP

相关分类

Python
我要回答