企业网站快速建站深圳网站搭建找谁
news/
2025/9/22 18:01:26/
文章来源:
企业网站快速建站,深圳网站搭建找谁,微信小程序游戏充值破解,公司网站制作公一、pytest跳过功能 1. 使用 pytest.skip 装饰器跳过测试用例
Pytest中的 pytest.skip 装饰器允许你跳过指定的测试用例。你可以将该装饰器应用于测试函数或测试类上。
import pytestpytest.mark.skip(reasonSkipping this test case)
def test_skip():assert 1…一、pytest跳过功能 1. 使用 pytest.skip 装饰器跳过测试用例
Pytest中的 pytest.skip 装饰器允许你跳过指定的测试用例。你可以将该装饰器应用于测试函数或测试类上。
import pytestpytest.mark.skip(reasonSkipping this test case)
def test_skip():assert 1 1 3pytest.mark.skipif(sys.version_info (3, 7), reasonPython version is below 3.7)
def test_skip_if():assert 2 * 3 6pytest.mark.skip(Outdated feature, skipping test)
def test_skip_with_reason():assert hello.upper() HELLO在上面的示例中我们使用了不同的方式来标记需要跳过的测试用例。pytest.skip 装饰器可以接受一个可选的 reason 参数用于提供跳过测试的原因。
2. 使用 pytest.skip() 函数动态跳过测试用例
除了使用装饰器跳过测试用例外你还可以在测试函数中使用 pytest.skip() 函数来动态地跳过测试。
import pytestdef test_skip_dynamic():condition False # 设置一个条件决定是否跳过测试用例if condition:pytest.skip(Skipping this test dynamically)assert 10 / 2 5在上述示例中我们根据条件动态地决定是否跳过测试用例。如果条件为真那么测试用例将被跳过并在测试报告中显示跳过的原因。
3. 使用 pytest.mark.skip 和 pytest.mark.skipif 跳过测试函数或模块
除了跳过单个测试用例外你还可以使用 pytest.mark.skip 和 pytest.mark.skipif 标记整个测试函数或测试模块。
import pytestpytest.mark.skip(reasonSkipping the entire test function)
def test_skip_function():assert 1 1 3pytest.mark.skipif(sys.platform ! win32, reasonOnly runs on Windows platform)
def test_skip_module():assert hello ! world在上面的示例中我们使用 pytest.mark.skip 装饰器标记了整个测试函数以及使用 pytest.mark.skipif 装饰器标记了整个测试模块。这样这些被标记的测试将在运行时被跳过。
4. 应用场景
跳过功能在以下常见的应用场景中非常有用
当某些条件不满足时可以跳过相关的测试用例。例如跳过需要特定环境或特定版本的测试。当某些功能被废弃或不再可用时可以跳过相关的测试用例以避免浪费时间和资源。在进行持续集成CI时可以根据特定的条件跳过一些测试用例以加快构建和部署过程。
二、pytest标记功能 1. 使用 pytest.mark 装饰器添加标记
你可以使用 pytest.mark 装饰器为测试函数、类或模块添加标记。这样可以将不同的标记应用于不同的测试以便在运行时根据标记执行相应的操作。
import pytestpytest.mark.smoke
def test_login():assert Truepytest.mark.regression
class TestUser:def test_create_user(self):assert True在上述示例中我们使用 pytest.mark 装饰器分别为一个测试函数和一个测试类添加了不同的标记smoke 和 regression。这样就可以根据标记来执行特定类型的测试。
2. 运行带有特定标记的测试
你可以使用 -m 参数来运行带有特定标记的测试。例如要只运行带有 smoke 标记的测试可以运行以下命令 pytest -m smoke 这将只运行带有 smoke 标记的测试用例。
3. 自定义标记参数化
除了预定义的标记外你还可以定义自己的标记并将其用于参数化测试。这样可以为不同的测试场景提供更多灵活性。
import pytestpytest.mark.parametrize(input, expected, [(1, 2),(2, 4),(3, 6)
], ids[input_1, input_2, input_3])
def test_multiply(input, expected):assert input * 2 expected在上述示例中我们定义了一个带有参数化标记的测试函数。这样可以为不同的输入数据提供不同的期望输出并在报告中使用自定义的标识符ids来标记每组参数化测试。
4.标记优先级
Pytest 中的标记优先级是通过 pytest.mark 装饰器的 priority 参数实现的。你可以为测试函数、类或模块添加优先级标记以控制它们的执行顺序。
import pytestpytest.mark.smoke
pytest.mark.priority(1)
def test_login():assert Truepytest.mark.regression
pytest.mark.priority(2)
class TestUser:def test_create_user(self):assert True在上述示例中我们通过 pytest.mark.priority 装饰器为测试函数和测试类分别设置了不同的优先级。这样就可以确保在运行测试时具有更高优先级的测试将首先执行。
当你运行带有优先级标记的测试时Pytest 将按照优先级顺序执行测试用例。例如要运行带有优先级标记的测试可以运行以下命令 pytest --prioritize 5. 标记应用场景
标记功能在以下情况下特别有用
将测试用例分组为不同的类别如 smoke、regression、performance 等以便根据需要执行或排除特定类型的测试。为测试用例添加额外的元数据以便在运行时执行特定操作或生成详细的测试报告。使用标记来控制测试的执行顺序或并发度。通过自定义标记实现参数化测试灵活地处理不同的测试场景。确保关键测试优先执行你可以为关键测试添加高优先级标记以确保它们在其他测试之前运行从而及早发现潜在问题。控制测试顺序如果你需要控制测试的执行顺序可以使用优先级标记来定义测试的执行顺序以满足特定需求。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909902.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!