2016-07-26 70 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。如果与功能和易用性相比,它是我认为最好的一个。

相关问题