python - 如何使用带有限定符测试的 pytest 运行多个测试
问题描述
我有一个 pytest 测试文件的目录,并且有一个需要测试的限定符测试,如果它失败则停止执行任何进一步的测试,但如果它通过则执行所有测试,无论是否通过。我有一个具有以下结构的目录:
tests/
test_qualifier.py
test_one.py
test_two.py
...
现在,当我使用pytest test/ -x
它运行测试时,它会运行所有测试,因为它会在第一次失败时停止。我想pytest
运行test_qualifier.py
,如果它失败则停止进一步执行,但如果它通过则不要停止任何测试是否失败。
解决方案
您可以使用 pytest-depends 插件。将其他测试标记为依赖于 test_qualifier。
从插件页面:
这个 pytest 插件允许你声明 pytest 测试之间的依赖关系,如果依赖的测试没有成功,则依赖的测试将不会运行。
当然,测试应该尽可能自包含,但这并不意味着它没有很好的用途。
当一个测试失败意味着另一个测试也不可能成功时,这可能很有用,尤其是对于较慢的测试。这不是测试 A 为测试 B 设置东西的意义上的依赖关系,但更多的是如果测试 A 失败,也没有理由打扰测试 B。
代码示例:
BUILD_PATH = 'build'
def test_build_exists():
assert os.path.exists(BUILD_PATH)
@pytest.depends(on=['test_build_exists'])
def test_build_version():
result = subprocess.run([BUILD_PATH, '--version', stdout=subprocess.PIPE)
assert result.returncode == 0
assert '1.2.3' in result.stdout
您可以通过使用 pytest 钩子编写自己的 pytest 插件来实现相同的目的。
推荐阅读
- ubuntu - Xdebug - 无法接受外部 Xdebug 连接:无法评估表达式 'isset($_SERVER['PHP_IDE_CONFIG'])'
- php - 在 HTML 表中使用 PHP 和 while 循环使用内联样式的正确语法是什么?
- json - 在 reactjs 的搜索栏下显示来自 json 的数据作为建议
- python - 需要从同一目录下的文件中导入键和值
- javascript - react-beautiful-dnd 可拖动在拖动过程中不可见
- python - 集成二维向量场阵列(反转 np.gradient)
- javascript - 有什么用!!在javascript中
- assembly - 在 Assembly 中打印一个单词 10 次
- php - 使用 odbc_exec libmdb mdbtools 耗尽允许的内存大小
- java - 如何使用 ADF DataControl 中公开的搜索和按钮 From 方法创建 Af:Table?