Как запустить тесты NUnit v2.4.8 с бета-версией NAnt 0.86?

Недавно я безуспешно пытался использовать NAnt (beta 0.86.2962.0) для запуска некоторых модульных тестов, скомпилированных с последней стабильной версией NUnit (v2.4.8).

Я получаю следующую ошибку:

[nunit2] Сборка «C: \ Dev \ MySample \ bin \ tests \ My.Sample.Tests.dll» не содержит тестов.

Конечно, в сборке есть тесты, которые я могу запустить из любого бегуна, например NUnit one, TestDriven или Resharper. Я хотел бы использовать задачу <nunit2>, а не непосредственно задачу <exec>, но мне интересно, возможно ли это, даже используя файлы app.config для привязки версий сборки.

Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
0
2 239
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Не могу вспомнить почему, но я отказался от задачи <nunit2> и с радостью использовал задачу <exec> и nunit-console.exe. Если это поможет, вот моя тестовая цель, на которой работают NUnit и FxCop. Обратите внимание, что он пропускает их, если исполняемые файлы не находятся в пути Windows.

<target name = "test" description = "Run unit tests" depends = "build">
  <property name = "windows-path" value = "${string::to-lower(environment::get-variable('PATH'))}"/>
  <property name = "nunit-in-path"
      value = "${string::contains(windows-path, 'nunit')}"/>
  <echo message = "Tests skipped because no NUnit folder was found in the Windows path."
      unless = "${nunit-in-path}"/>
  <exec program = "nunit-console.exe" if = "${nunit-in-path}">
      <arg file = "../MyProject/MyProjectTest.nunit"/>
  </exec>
  <property name = "fxcop-in-path"
      value = "${string::contains(windows-path, 'fxcop')}"/>
  <echo message = "FxCop skipped because no FxCop folder was found in the Windows path."
      unless = "${fxcop-in-path}"/>
  <fxcop projectFile = "../MyProject/MyProject.fxcop" directOutputToConsole = "true" 
      failOnAnalysisError = "true" if = "${fxcop-in-path}"/>
</target>

Я продолжаю ... Раньше я пытался использовать магию app.config, чтобы попытаться заставить задачу nunit2 работать, но некоторое время назад сдался и теперь использую задачу exec, как описано выше.

Andy Whitfield 02.10.2008 00:10

Дон, Энди: Я считаю, что хорошей причиной для использования задачи <exec> вместо <nunit2> является то, что если в вашем наборе тестов есть тесты, помеченные как [ExpectedException], а исключение действительно выбрано, задача <nunit2> NAnt сообщает об этом как неудача вместо успеха, и сборка терпит неудачу. У меня сейчас эта проблема. Я собираюсь решить эту проблему с помощью <exec>, но, конечно, буду благодарен за другой совет по обходному пути.

azheglov 13.01.2011 18:45

Привет, ребята, я пытаюсь использовать свою DLL модульного теста в файле arg. Но это не говорит о том, какие тесты провалились. Тег arg не содержит подробностей или ошибок при ошибке, так как же узнать, прошли ли тесты ваши тесты?

alice7 11.03.2011 01:31

Я думаю, что nunit-console устанавливает значение возврата, отличное от нуля, если какой-либо из тестов завершается неудачно, и это должно привести к сбою сборки, @ alice7. Я думаю, что он также записывает сообщения в стандартный вывод о любых неудачных тестах. Если вы этого не видите, то я подозреваю, что что-то еще не так. Попробуйте запустить nunit-console из командной строки, чтобы вы могли четко видеть результат. Nant может не найти nunit-console.exe или NUnit не сможет найти вашу тестовую DLL. Если это не поможет, я предлагаю вам задать отдельный вопрос с максимально подробной информацией.

Don Kirkby 15.03.2011 01:21

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