Вы, вероятно, используете pytest с последовательным портом, состоящим из 5 цифр, например:
pytest --serial-port 12345
И у вас есть 3 функции в вашем test_xyz.py
.
Так что же происходит? Вы настраиваете последовательный порт, который является строкой. Тесты фактически выполняются со значениями от serial_port = "1"
до serial_port = "5"
.
Эта строка в conftest.py
приводит к вызовам тестов 5 * 3 раза.
metafunc.parametrize("serial_port", serial_port)
Вы можете изменить conftest
на:
import pytest
def pytest_addoption(parser):
parser.addoption("--serial-port", help="Target serial port")
parser.addoption('--count', default=1, type='int', metavar='count',
help='Run each test the specified number of times')
@pytest.fixture(scope='session')
def serial_port(request):
port = request.config.option.serial_port
if port is None:
pytest.skip()
return port