gpt4 book ai didi

python - Py.Test 与配置文件

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

标题可能含糊不清,所以我试着在这里解释一下这个场景。

我想在多个设备上测试 python 模块 Foo。我已经创建了一个 test_Foo.py 文件。

现在所有这些带有 Foo 的设备都需要不同的设置。例如,设备 A 需要使用参数 X 构建和测试 Foo,而设备 B 需要使用参数 Y 构建和测试 Foo。其中参数例如是设备 ID。

是否可以(以及如何)控制我的 test_Foo.py 使用配置文件。我使用 YAML 文件作为其他模块 argparse.ArgumentParser 的配置,但我想知道我可以在 Py.Test 中使用相同的概念。

最佳答案

您是否可以控制将用于在每个环境中调用 py.test 的命令行参数?如果是这种情况,您可以配置您的测试服以添加命令行参数,这些参数又可以被其他装置使用以相应地配置自己。

请在此处查看示例:http://pytest.org/latest/example/simple.html#pass-different-values-to-a-test-function-depending-on-command-line-options

根据您的情况调整示例,它类似于:

# content of conftest.py
import pytest

def pytest_addoption(parser):
parser.addoption("--device", action="store",
help="device: A or B")

@pytest.fixture
def param(request):
device = request.config.getoption("--device")
if device == 'A':
return X()
elif device == 'B':
return Y()

现在为您的测试文件:

# contents of test_Foo.py
def test_Foo(param):
foo = Foo(param)
# test foo

这允许您像这样调用 py.test:

py.test --device=A

这将使 test_Foo 接收到一个 X 对象。

您当然可以扩展它以接收 yaml 文件名,并从那里读取选项,相应地实现一个固定装置。

关于python - Py.Test 与配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22401786/

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