gpt4 book ai didi

python - Pytest - 除非声明选项/标志,否则如何跳过测试?

转载 作者:太空狗 更新时间:2023-10-29 22:12:19 26 4
gpt4 key购买 nike

我有一些单元测试,但我正在寻找一种方法来标记一些特定的单元测试以跳过它们,除非您在调用测试时声明了一个选项。

例子:如果我调用 pytest test_reports.py ,我希望不运行一些特定的单元测试。

但是如果我调用 pytest -<something> test_reports ,然后我希望运行所有测试。

我查看了 @pytest.mark.skipif(condition)标记但无法完全弄清楚,所以不确定我是否在正确的轨道上。这里的任何指导都会很棒!

最佳答案

我们在 conftest.py 中使用带有 addoption 的标记

测试用例:

@pytest.mark.no_cmd
def test_skip_if_no_command_line():
assert True

conftest.py:在函数中

def pytest_addoption(parser):
parser.addoption("--no_cmd", action="store_true",
help="run the tests only in case of that command line (marked with marker @no_cmd)")

在函数中

def pytest_runtest_setup(item):
if 'no_cmd' in item.keywords and not item.config.getoption("--no_cmd"):
pytest.skip("need --no_cmd option to run this test")

pytest 调用:

    py.test test_the_marker 
-> test will be skipped

py.test test_the_marker --no_cmd
-> test will run

关于python - Pytest - 除非声明选项/标志,否则如何跳过测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47559524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com