Проблема
Проблема возникает тогда, когда модульные и/или интеграционные тесты не проходят из-за изменений в коде, таких как добавление новых свойств в базовые классы или исправление ошибок. Ручное исправление каждого ожидаемого базового значения и запуск неудачных тестов по отдельности занимает много времени.
Подход
Подход включает использование инкрементных генераторов .NET для создания модифицированных копий тестов «StormPetrel», которые могут обновлять ожидаемые базовые значения в оригинальных тестах. Разработчики могут запускать эти тесты для автоматического переписывания базовых значений, а затем вручную проверять изменения на точность, значительно сокращая время разработки.
Описание
Решение включает несколько компонентов, разработанных в виде пакетов NuGet. Пакет StormPetrel.Generator инкрементально создает модифицированные копии тестов «StormPetrel» со встроенным кодом контекста Storm Petrel. При выполнении эти тесты захватывают фактические базовые значения, конвертируют их в код C# с использованием пакета VarDump или пакета ObjectDumper.NET и переписывают ожидаемые базовые значения в оригинальных тестах или других файлах.
Screenshots
Ключевые особенности
- Поддержка фреймворков: Расширенная совместимость с ведущими тестовыми фреймворками, включая XUnit, NUnit и MSTest.
- Конфигурация пар переменных: Гибкие параметры конфигурации для пар фактических/ожидаемых переменных, поддерживающие несколько наборов.
- Настраиваемые алгоритмы: Возможность использования собственных или настраиваемых алгоритмов для генерации или дампа ожидаемых базовых значений, используя контекст выполнения тестов Storm Petrel.
- Инициализация базовых значений: Полная поддержка ожидаемых базовых значений, инициализированных в методе теста или полученных из внешних методов с переменными аргументами.
Результат
Компоненты Storm Petrel .NET упрощают процесс обновления ожидаемых базовых значений с минимальными усилиями, ускоряя разработку программного обеспечения.