2011-03-31 3 views
2

고장이 있는지 여부에 관계없이 단위 테스트를 실행하고 싶습니다. 얼마나 많은 사람들이 첫 번째 것뿐만 아니라 실패했는지 알고 싶기 때문에 빌드를 거치지 않고 실패하고 수정하고 다시 빌드하십시오. 또한, 다른 팀이 일부 테스트를 수정하여 책임을지기 때문에 테스트가 잘되는지 알고 싶습니다.일부 테스트가 실패하더라도 실행중인 모든 유닛 테스트!

Nant에서는 uniton 테스트의 대상에 다음을 추가했습니다. failonerror는 false이므로 모든 테스트가 실행되지만 빌드가 실패하지 않습니다. 실행의 끝에서

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

는 NANT는, 내가 이런 일을하고 싶지 더 0보다 경우에 나는, 비 치명적 오류의 수를 확인하려면

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

보고 ..

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

나는 오류 수를 얻는 방법을 모르겠다. 아무도 어떻게 알 수 있습니까?

+0

나는 전혀 NANT를 모르겠어요,하지만이 발생, failonerror를 true로 설정하고 haltonfailure 만 false로 설정할 때? –

+0

첫 번째 단위 테스트가 실패한 후 빌드가 실패합니다 .... ( – Gaz

+0

CI 서버 테스트에서 "다른 팀"테스트를 분리하는 것이 좋습니다. 개별 테스트 어셈블리, NUnit 카테고리 등을 사용할 수 있습니다. 테스트하기 전에 유닛 테스트를 체크인하기 전에 로컬로 실행하면 빌드가 손상되는 것을 피할 수 있습니다. 빠른 테스트와 빠른 실패/수정주기가 필요합니다. – TrueWill

답변

3
외에도 <exec>에 찬성 <nunit2>을 삭제하면 <exec> 작업이 문제를 해결할 수있는 특별한 경우에, a good idea anyway 될 수 있다는 사실에서

:

<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> 
관련 문제