在我們的持續集成設置中,我想設置CruisControl.NET來自動運行我們所有的單元測試。但是,我不想在配置中單獨指定每個unittest dll。我該如何讓CruiseControl.NET/nant運行後綴.Test的所有Unittest項目?
所有unittest項目都是後綴.Test
(並且所有非單元測試項目都不是)。我如何配置CruiseControl.NET來運行這些項目中的所有unittests(我正在使用CruiseControl.NET的v1.5.7256.1)?
我目前的配置嘗試:
<nunit>
<path>$(nunit.path)</path>
<assemblies>
<assembly>$(working.dir)\**\*.Test.dll</assembly>
</assemblies>
</nunit>
我發現很難找到這個特定的NUnit元素上的文檔。我可以找到的大多數頁面都使用exec,nunit2或其他nunit元素或nunit-console commandline options。
我沒有太多的管理構建環境的經驗,並且正在處理現有配置,其中每個組件都是按照以下方式單獨指定的。
<nunit>
<path>$(nunit.path)</path>
<assemblies>
<assembly>$(artifact.dir)\test1.dll</assembly>
<assembly>$(artifact.dir)\test2.dll</assembly>
</assemblies>
</nunit>
因此,我嘗試使用通配符失敗。
編輯:
這裏是我的配置文件中的一些額外的XML顯示上下文一點點:
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<project name="MyProject">
<!-- whole bunch of other elements -->
<tasks>
<nunit>
<!-- see above -->
</nunit>
</tasks>
</project>
</cruiscontrol>
Mightmuke的建議後,我試圖與他的建議更換<nunit>
元素,但得到以下例外:Unable to instantiate CruiseControl projects from configuration document. Configuration document is likely missing Xml nodes required for properly populating CruiseControl configuration. Unable to load array item 'property' - Cannot convert from type System.String to ThoughtWorks.CruiseControl.Core.ITask for object with value: ""
然後我試圖移動<property>
和<foreach>
elemen t在元素外面。然後我得到的例外:Unused node detected: <property name="nunit.filelist" value="" />
我現在試圖找出更多關於<foreach>
元素和我可以把它放在哪裏,但不知何故,我發現很難找到任何有關它的文檔。
EDIT2:
我發現我使用的NUnit的任務的文檔:http://ccnet.sourceforge.net/CCNET/NUnit%20Task.html
我指定是String類型[]的元素。我不確定這意味着什麼...但從示例中可以看出,它只是意味着它必須包含一個以單數形式表示的同名子元素列表。
PS:我知道這個問題是有點失控......當整個事情解決了,我會嘗試這樣的形式來編輯它,以便它可能對別人有用後來。
可能不是你螞蟻聽到的,但是nunit任務已被棄用,以支持nunit2任務。不過,我建議你使用最新版本的nunit的nunit控制檯命令行選項,並將過濾的文件列表作爲參數傳入。如果這是您的一個選擇,我可以舉一個例子。 – Mightymuke
@Mightymuke這是我的一個選擇。我真的很感激這個例子。我想知道,不贊成的[nunit任務](http://nant.sourceforge.net/nightly/latest/help/tasks/nunit.html)似乎與我使用的API不同。我沒有看到在那裏解釋的和元素。我在看錯文檔嗎? –
您使用[nauckit nant任務](http://dev.nauck-it.de/projects/utilities/wiki/NAntTasksNunitTest)嗎?如果是這樣,您可以使用[AssemblyFileSet](http://nant.sourceforge.net/release/latest/help/types/assemblyfileset.html),但我的偏好仍然是nunit控制檯選項。 – Mightymuke