在运行.exe文件的pytest中使用2个参数进行参数化测试

时间:2019-12-06 11:52:19

标签: python cmd pytest

@pytest.mark.parametrize("x", range(17))
@pytest.mark.parametrize("y", range(11))
def test_foo(x, y)
my_test.exe, my_command 'x' 'y'

我想从“ my_test.exe”运行命令“ my_command x y”,x和y来自上述范围。

1 个答案:

答案 0 :(得分:1)

您实际上从参数化调用开始,它的工作原理完全像这样。您只需要在您的方法中添加流程调用。

一个例子:

import subprocess
import pytest

@pytest.mark.parametrize("x", range(17))
@pytest.mark.parametrize("y", range(11))
def test_foo(x, y):
    rc = subprocess.check_call(['/bin/echo', str(x), str(y)])
    assert rc == 0

    stdout = subprocess.check_output(['/bin/echo', str(x), str(y)])
    assert stdout

check_callcheck_output将在程序错误时引发异常,因此测试失败。您也可以测试输出。