2008-09-05 137 views
6

我最近試過用NAnt(beta 0.86.2962.0)來運行一些用最後一個穩定版本的NUnit(v2.4.8)編譯的單元測試而沒有任何成功。如何使用NAnt 0.86測試版運行NUnit v2.4.8測試?

我得到的錯誤是:

[nunit2]大會 「C:\開發\ MYSAMPLE \ BIN \測試\ My.Sample.Tests.dll」 不包含任何測試。

當然,程序集包含可以從任何運行程序運行的測試,如NUnit one,TestDriven或Resharper。我想使用< nunit2>任務,而不是直接使用< exec> one,但我想知道是否仍有可能,即使使用app.config文件來綁定程序集版本。

回答

10

我不記得爲什麼,但我放棄了使用< nunit2>任務,我一直在愉快地使用< exec> task和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> 
+1

我第二本。我就嘗試做在app.config魔術嘗試並獲得nunit2任務工作,但放棄了一段時間後,現在使用exec任務,如上所述。 – 2008-10-01 20:10:40