Как автоматически преобразовать все утверждения «классической модели» в утверждения «модели ограничений» в NUnit?

Существует ли инструмент для автоматического преобразования утверждений «классической модели» в утверждения «модели ограничений» для всех тестов?

Пакет Nuget NUnit.Analyzers предлагает автоматический рефакторинг, но он работает только для одного утверждения.

Например, Классическая модель:

Assert.IsTrue(sut.Value);

Модель ограничений:

Assert.That(sut.Value, Is.True);

регулярное выражение — ваш друг. Вы даже можете написать свой собственный анализатор кода.

MakePeaceGreatAgain 03.05.2024 11:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
74
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Во-первых, вы можете использовать Regex для преобразования всех Assert. в ClassicAssert., чтобы код скомпилировался.

Когда я сделал это в своем собственном проекте, я применил этот подход ко всему. Я написал регулярное выражение для каждого шаблона с заменой группы захвата. Все работало нормально.

Но теперь, отвечая на этот вопрос, я нашел лучший способ автоматизировать это. Я не знал, что для этого есть предложение анализатора.

В Visual Studio, VS Code или Rider вы можете выбрать любое быстрое исправление и применить его ко всему документу, проекту или решению.

Но даже без этого вы можете запустить исправление из командной строки следующим образом:

 dotnet format *.csproj --diagnostics NUnit2003 --severity info

При необходимости вы можете использовать конкретный файл csproj или sln. NUnit2003 — это код исправления, которое я видел в своем простом тесте, и вам нужен --severity info, потому что он не включен по умолчанию, даже если вы называете диагностику, которую исправляете.

Очень хорошо! Я использую пакет nuget NUnit.Analyzers и анализатор NUnit2005. Спасибо!

Stepagrus 20.05.2024 13:02

P.S. NUnit2001 NUnit2002 NUnit2003 NUnit2004 NUnit2005 NUnit2015 NUnit2017 NUnit2019 NUnit2035 NUnit2048 NUnit2049 🤪

Stepagrus 24.05.2024 06:40

Ой. Извини за это!

Meligy 25.05.2024 07:10

Некоторые вещи не подлежат исправлению, например NUnit2007. Здесь Regx будет работать лучше.

Meligy 25.05.2024 07:16

Или, если вы не против применить исправления для любой другой серьезности info (кроме NUnit), эта команда также будет работать: dotnet format *.csproj --severity info (удалить параметр diagnostics).

Meligy 25.05.2024 12:57

Другие вопросы по теме