Существует ли инструмент для автоматического преобразования утверждений «классической модели» в утверждения «модели ограничений» для всех тестов?
Пакет Nuget NUnit.Analyzers предлагает автоматический рефакторинг, но он работает только для одного утверждения.
Например, Классическая модель:
Assert.IsTrue(sut.Value);
Модель ограничений:
Assert.That(sut.Value, Is.True);





Во-первых, вы можете использовать Regex для преобразования всех Assert. в ClassicAssert., чтобы код скомпилировался.
Когда я сделал это в своем собственном проекте, я применил этот подход ко всему. Я написал регулярное выражение для каждого шаблона с заменой группы захвата. Все работало нормально.
Но теперь, отвечая на этот вопрос, я нашел лучший способ автоматизировать это. Я не знал, что для этого есть предложение анализатора.
В Visual Studio, VS Code или Rider вы можете выбрать любое быстрое исправление и применить его ко всему документу, проекту или решению.
Но даже без этого вы можете запустить исправление из командной строки следующим образом:
dotnet format *.csproj --diagnostics NUnit2003 --severity info
При необходимости вы можете использовать конкретный файл csproj или sln. NUnit2003 — это код исправления, которое я видел в своем простом тесте, и вам нужен --severity info, потому что он не включен по умолчанию, даже если вы называете диагностику, которую исправляете.
Очень хорошо! Я использую пакет nuget NUnit.Analyzers и анализатор NUnit2005. Спасибо!
P.S. NUnit2001 NUnit2002 NUnit2003 NUnit2004 NUnit2005 NUnit2015 NUnit2017 NUnit2019 NUnit2035 NUnit2048 NUnit2049 🤪
Ой. Извини за это!
Некоторые вещи не подлежат исправлению, например NUnit2007. Здесь Regx будет работать лучше.
Или, если вы не против применить исправления для любой другой серьезности info (кроме NUnit), эта команда также будет работать: dotnet format *.csproj --severity info (удалить параметр diagnostics).
регулярное выражение — ваш друг. Вы даже можете написать свой собственный анализатор кода.