Запуск всех модульных тестов в nant, даже если некоторые не пройдены! - PullRequest
2 голосов
/ 31 марта 2011

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

Итак, в Nant я добавил следующее в цель для модульных тестов, так как failonerror имеет значение false, он запускает все тесты, но не завершает сборку.

<nunit2 failonerror="false" haltonfailure="false"> 
    <test appconfig="tests.config">
        <assemblies basedir="${test.dir}">
           <include name="SomeTests.dll" />
        </assemblies>
    </test>
</nunit2>

В конце цикла Нант сообщает

1 non-fatal error(s), 0 warning(s)

Я хочу проверить число нефатальных ошибок, если оно больше 0, я хочу сделать что-то вроде этого ...

<fail message="Failures reported in unit tests."
      unless="report.errors == 0" />

кроме того, что я не знаю, как получить количество ошибок ...... кто-нибудь знает, как?

1 Ответ

3 голосов
/ 01 апреля 2011

Помимо того факта, что сброс <nunit2> в пользу <exec> может быть хорошей идеей в любом случае , в Вашем особом случае <exec> задача может решить проблему:

<exec
  program="C:\dev\tools\NUnit\2.5.9\bin\net-2.0\nunit-console.exe"
  resultproperty="exec.nunit.result"
  failonerror="false">
  <arg file="C:\foo\bar.dll" />
</exec>
<if test="${int::parse(exec.nunit.result) != 0}">
  <!-- fail, print number of failures etc. -->
</if>
...