Вопрос: Могу ли я отсортировать использованные приборы и параметры?
Тест 1:
Допустим, у меня есть этот тест:
import pytest
@pytest.fixture(params=["a", "b"], ids=str)
def char(request):
return request.param
@pytest.fixture(params=[1, 2], ids=int)
def number(request):
return request.param
def test(char, number):
print("fixture: {} - {}".format(char, number))
Вывод будет выглядеть так:
test_fixture.py::test[a-1] PASSED [ 25%]
test_fixture.py::test[a-2] PASSED [ 50%]
test_fixture.py::test[b-1] PASSED [ 75%]
test_fixture.py::test[b-2] PASSED [100%]
Тест 2:
Но если я смешаю использование приборов с такими параметрами:
import pytest
@pytest.fixture(params=[1, 2], ids=int)
def number(request):
return request.param
@pytest.mark.parametrize("char", argvalues=["a", "b"], ids=str)
def test(char, number):
print("mixed: {} - {}".format(char, number))
Тогда, вывод выглядит следующим образом:
test_mixed.py::test[1-a] PASSED [ 25%]
test_mixed.py::test[1-b] PASSED [ 50%]
test_mixed.py::test[2-a] PASSED [ 75%]
test_mixed.py::test[2-b] PASSED [100%]
Проблема в том, что в отчете о тесте неожиданно меняются символ и число. Я могу понять, что это связано с различными шагами, которые выполняет pytest для заполнения всех запрошенных параметров. Но есть ли способ форсировать определенный c ордер ?
Для некоторого фона у нас есть много существующих тестовых функций, адаптация одной функции с другим параметром не должна вызывать другое имя теста. Да, я также могу создать прибор для этого специфического теста c, но я хочу знать, какие есть другие варианты.