12

什麼是當前最好的解決方案,能夠自動執行CruiseControl.NET中針對Silverlight應用程序的單元測試?使用CruiseControl.NET進行自動Silverlight單元測試

最好我想運行MSTest單元測試,但由於這些不是官方支持的silverlight,但我願意接受使用其他測試框架的建議。

回答

4

Silverlight Toolkit的11月版本不僅包含Silverlight單元測試框架,還包含一個MSBuild任務,允許框架從命令行運行。見Jeff Wilcox's post詳細,但你基本上結束了這樣:

msbuild /t:test /p:browser=firefox 

由於CC.Net可以運行的MSBuild,你應該能夠至少撥打測試。輸出採用TRX格式。

我已經使用這個框架取得了一些成功,雖然沒有集成到CC.Net,但它工作正常,但測試在瀏覽器中運行,所以有點慢。在瀏覽器中運行的好處是你可以做更多接受式的測試,運行控件來顯示。該框架還包括處理Silverlight異步性質的方法。

+0

我還沒有意識到這一點。太好了! – 2010-01-19 15:44:24

+0

確實不錯。這是否使測試可以在無人蔘與的構建服務器上完全自動化?例如,在測試運行後,瀏覽器應該關閉自己並保存輸出 – SciFi 2010-01-19 15:57:24

+0

@jbloomer:您是否有使用11月工具包中提供的測試框架的經驗?它似乎Silverlight測試項目模板不安裝在VS2008中。它是一個VS2010模板嗎? – SciFi 2010-01-19 17:12:21

3

我一直有這個問題,目前有沒有官方支持做這些單元測試的方式。主要問題是Silverlight單元測試框架不支持插入MSTest,因此無法真正集成到任何CI中。但是有一種方法可以使用Powerhell來解決這個問題 - 請參閱here

我個人發現它的相當麻煩將這些測試插入CI並暫時只在本地機器上運行它們。

更新:爲jbloomer寫道,關於可如何設置爲Silverlight的單元測試框架的MSBuild任務on Jeff Wilcox's blog一個演練。我建議選擇這個路徑:一旦建立了MSBuild,你應該沒有問題將它插入CruiseControl.NET。

0

你可以使用第三方測試框架,如NUnit或XUnit.net?然後您可以從CC.net中調用可執行文件。事實上,CCNet有一個NUnit任務。

+2

NUnit和XUnit都不支持Silverlight特定的測試。 – 2010-01-19 15:46:33

2

對於CCNET或TeamCity的從命令行運行Silverlight的單元測試,你可以使用燈塔的Silverlight單元測試亞軍:

http://lighthouse.codeplex.com/

它適用於因爲它運行單元測試和生產NUnit的XML兼容任何構建服務器結果文件,所以你像運行NUnit Console runner一樣運行它。

+1

這對Jenkins CI也很有用。測試結果由NUnit插件無縫地提取。 – Blake 2012-06-11 14:32:54