#fscheck
Вопрос:
У меня есть тест с использованием FsCheck, когда он завершается неудачей, он предоставляет мне информацию о начальном элементе, который нужно поместить в Replay
свойство для воспроизведения неудачного теста. Но отладить это действительно сложно, потому что это не приведет к сбою при первом значении.
FsCheck также предоставляет мне информацию о количестве попыток до тех пор, пока не произойдет сбой: Falsifiable, after 74 tests
Есть ли какой-либо способ запустить именно то значение, которое не удалось выполнить?
Обходные пути, которые я использую:
- Создайте тест, передающий значение, которое он дает мне для отладки, и после исправления кода я удаляю этот тест;
- Добавьте в тест условную точку останова для значения, из-за которого тест завершается неудачно.
Оба они работают, но должен быть лучший способ.
Комментарии:
1. На данный момент это не поддерживается, хотя это правда, что у FsCheck также есть вся информация для печати исходного кода для неудачного теста. Есть небольшое опасение, что переход к этому не приведет к тем же самым значениям, если будут задействованы побочные эффекты, но я бы не так сильно беспокоился об этом. Я рекомендую и использую ваше первое решение, но я не удаляю тест — в конце концов, это ошибка, которую я писал раньше, так что я, скорее всего, сделаю это снова. Со временем мои тесты становятся своего рода набором регрессионных тестов.
2. Спасибо за комментарий @KurtSchelfthout. Я думаю, что это может быть ответом, так как в данный момент он не поддерживается. Также мне очень понравилась ваша точка зрения, связанная с теми случаями, которые являются вашим набором регрессии.