# To call:
# python -m pytest ppp.py
import pytest
from subprocess import *
FWTEST_PATH = r'fw-test.exe' # Here should be full path to the fw-test.exe !
def call_fwtest(x, y, timeout=3):
with Popen([FWTEST_PATH, '--cal_tank', str(x), str(y)],
stderr=PIPE, stdout=PIPE) as p:
p.wait(timeout)
return (p.returncode, p.stderr.read(), p.stdout.read())
@pytest.mark.parametrize("x", range(19))
@pytest.mark.parametrize("y", range(3))
def test_fw(x, y):
returncode, out, err = call_fwtest(x, y)
assert out == b'MY EXPECTED OUT'
Вы можете установить timeout
аргумент для управления временем, после которого вы получите исключение TimeoutExpired
, если команда fw-test.exe
зацепится. Для его вызова используйте командную строку python3 -m pytest ppp.py
, где "ppp.py" - предполагаемое имя этого файла. Подробнее здесь об используемых функциях модуля «подпроцесс». Выходные данные имеют тип байтов, при необходимости вы можете добавить параметр encoding
к вызову Popen .