import pytest
def add(x):
return x + 1
def sub(x):
return x - 1
testData1 = [1, 2]
testData2 = [3]
class Test_math(object):
@pytest.mark.parametrize('n', testData1)
def test_add(self, n):
result = add(n)
testData2.append(result) <-------- Modify testData here
assert result == 5
@pytest.mark.parametrize('n', testData2)
def test_sub(self, n):
result = sub(n)
assert result == 3
if __name__ == '__main__':
pytest.main()
в этом сценарии выполняется только 3 теста: Test_math.test_add[1]
,Test_math.test_add[2]
,Test_math.test_sub[3]
.
Test_math.test_sub
выполняется только с предопределенными данными [3]
, что не соответствует моим ожиданиям [2,3,3]
. Как это исправить?
обновить [1,2,3] -> [2,3,3]
[1,2,3]
? Вы даетеtest_sub
списокtestData2
, который состоит только из одного элемента. Хорошо, я понимаю, почему вы могли ожидать чего-то другого. - person Ignacio Vergara Kausel   schedule 20.03.2018testData2.append(result)
изменит testData2, а новые testData2 перейдут к следующему выполнению, но это не так. - person Chweng Mega   schedule 20.03.2018testData1
иtestData2
в качестве атрибутов класса (это не проверялось). - person Ignacio Vergara Kausel   schedule 20.03.2018