2016-07-26 124 views
1

有沒有辦法自動測試和持續集成C#和WPF項目?我想過像詹金斯這樣的東西,但據我所知詹金斯不支持C#項目。它應該成爲測試驅動開發的工具,可以進行自動化測試,也可以用於GUI。也許構建工具窗體gitlab是一個選項?C#,WPF項目的自動化測試和持續集成

非常感謝提前!

+1

你可以用Jenkins設置MSBuild。請參閱本文 - http://blog.couchbase.com/2016/january/continuous-deployment-with-jenkins-and-.net – Sanket

+1

您也可以使用MSBuild和Bamboo。 Bamboo有一個插件可用。 – Maverick

+1

至於CI服務器,TeamCity運作良好。如果您想對WPF控件和窗口運行CodedUI測試,則需要查看MS測試工具並將其配置爲支持UI的模式。 –

回答

1

我們在我們的C#項目中使用Jenkins。您可以使用的MSBuild插件來構建項目,或使用「Windows批處理命令」像

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" YourSolution.sln /tv:4.0 /p:Configuration=Release /p:TreatWarningsAsErrors="true" /p:CheckForOverflowUnderflow="true" /p:WarningLevel=4 /v:m /t:rebuild 

注:使用此命令行,我重寫的警告和算術溢出項目特定的設置。

還有單元測試的插件。我們使用MSTest。因爲我整合了OpenCover代碼覆蓋率報表生成器,我必須使用較長的命令行:

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" "-target:C:\vs\Common7\IDE\MSTest.exe" "-targetargs:/nologo /testcontainer:Tests\Project1Tests.dll /testcontainer:Tests\Project2Tests.dll /resultsfile:testresult.trx /category:"^!SqlTests^&^!Perfomance"" -output:coverage.xml 
"C:\Program Files (x86)\OpenCover\OpenCoverToCoberturaConverter.exe" -input:coverage.xml -output:outputCobertura.xml -sources:%WORKSPACE% 
"C:\Program Files (x86)\ReportGenerator\ReportGenerator.exe" -reports:coverage.xml -targetDir:CodeCoverageHTML 

可悲的是,你MSTEST不接受外卡的測試項目,所以你最終有一個非常長的線。另請注意,上述命令行不包括測試類別「SqlTests」和「性能」。然後將輸出轉換爲其他插件可接受的格式。

您可以在構建和單元測試之後啓動一些虛擬機,然後在某些腳本中安裝一些測試數據並安裝程序,然後對系統進行一些自動測試。

對於GUI本身,我們還沒有測試策略。

1

如果您打算使用開箱即用的MS Test,還有很多選項可供選擇。否則,您需要檢查服務提供商是否可以支持xUnit runner或其他類似的可用於您的解決方案的測試框架。

  1. TFS/VisualStudio Online
  2. TeamCity
  3. Jekings with MSBuild
  4. Bamboo
  5. Appveyor

對於UI自動化你可以檢查White Framework。如果與功能和易用性相比,它是我認爲最好的一個。

相關問題