@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来自上述范围。
答案 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_call
或check_output
将在程序错误时引发异常,因此测试失败。您也可以测试输出。