Как отлаживать, когда гипотеза вызывает ненадежную ошибку теста?

Я использую пакет python гипотезы для тестирования состояния. Я получаю следующую ошибку, когда запускаю свои тесты:

hypothesis.errors.Flaky: Unreliable assumption: An example which satisfied assumptions on the first run now fails it.

Я понимаю, что означает flaky error, из аналогичного поста. У меня есть тест, который провалился в первый раз, но прошел во второй раз. Я могу понять из журнала, какой тест привел к этому отказу. Гипотеза пытается выполнить одну и ту же тестовую последовательность 4 раза в течение всего тестового прогона, из которых 2 проходят успешно, а 2 не проходят.

Я пробовал неудачный тест индивидуально без гипотез, и он не терпит неудачу. Я пытаюсь понять, что приводит к фальшивой ошибке. Возможно, это ошибка в Hypothesis, как указано в сообщении ниже:

Что означает тест Flaky: Hypothesis дает ненадежные результаты?

Как мне обойти это? Пожалуйста, найдите файл журнала тестового запуска по ссылке: https://github.com/aparnasbose/hypothesis/blob/master/flaky%20test


person Aniket    schedule 10.10.2019    source источник


Ответы (1)


Проблема почти наверняка в том, что ваш тест не является детерминированным для всех входных данных; есть некоторые аргументы или последовательности действий, которые Hypothesis может найти, которые иногда проходят, а иногда терпят неудачу. Hypothesis считает это ошибкой в ​​вашем тесте и выдает ошибку Flaky.

Чтобы диагностировать это более подробно, мне нужно увидеть ваш фактический исходный код.

К вашему сведению, многословность verbose здесь гораздо полезнее, чем debug (которая выводит слишком много внутреннего состояния). Вы также можете обновить до Hypothesis >= 4.41.1 для улучшения статистики.

person Zac Hatfield-Dodds    schedule 16.10.2019