python - Py.Test 与配置文件

标签 python configuration-files pytest

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

我想在多个设备上测试 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/

相关文章:

python - Django:何时使用多个应用程序

python - ImageGrid 中的颜色条标签 matplotlib

python - Numpy 有配置文件吗?

android - 如果我不是帐户管理员,如何获取 Google Analytics 的配置文件?

python - 将实参或参数传递给固定功能

python - 类型错误 : attrib() got an unexpected keyword argument 'convert'

python - Pandas MultiIndex 获取所有具有标签值的行

python - 如何在 python 中创建一个显示所有可用命令的命令?就像终端中的帮助一样

sql-server - SSIS:请求的 OLE DB 提供程序 SQLNCLI10.1 未注册

python - 极简 Pytest 输出?