基于这篇文章,我目前正在设计可以运行Silverlight测试的TFS 2010构建过程:
http://pyxis-tech.com/blog/2011/01/24/how-to-run-silverlight-automated-tests-on-tfs-build-server/
我已经让StatLight以MSTest通用格式生成结果文件,这很棒。但是,我现在需要在构建中发布结果,以便失败的测试将破坏构建。
上面的文章提到使用自定义活动来解析StatLight输出并发布失败,但实际上并没有提供代码,所以我不知道该怎么做。
理想情况下,我会使用标准MSTest活动发布测试结果,该活动用于运行我们的常规测试,因为我想尽可能避免自定义活动,但我不知道这是否可行。
有人可以在这方面提供一些帮助吗?除了上面的文章,我在网上找不到任何东西。
答案 0 :(得分:2)
我也在Pyxis博客中描述了TFS中的集成(我看到我的前同事仍然热衷于使用TFS)。
它工作正常,除了我意识到我有很多SLUnitTests的“类别”: - 其中一些可以直接连接到TFS, - 其他人需要我一些额外的工作(安全帐户,允许进行交互,......)。 然后,我遇到了与你相同的问题:如何轻松地停止错误登记(即避免编写额外的C#代码等等),并避免从DropFolder手动检查?
我在这里找到了一个替代解决方案,基于集成到Visual Studio 2010和TFS 2010的Generic Tests。因此更容易配置: http://www.nielshebling.de/?p=167
另一种可能性是使用CodePlex项目,它为您提供模板: http://statlightteambuild.codeplex.com
希望这有帮助,
Vincent THAVONEKHAM。
答案 1 :(得分:1)
Codeplex Project "NUnit for TeamBuild"中有类似的实现。
这个项目是关于获取NUnit结果,将它们用XSLT改为MSTest - 就像输出和放大一样。然后将它们发布到TFS 2010.
如果你抓住代码&打开解决方案,您可以通过查看重做Publisher2010.cs
内的操作找到实现目标的方法。
重做这些操作将导致您在每个构建的“摘要”视图中发布测试结果。
由于单元测试失败而导致构建失败需要一些额外的处理,首先要检索它&然后在你检测到失败的情况下降低你的构建。
如果NUnit的'返回代码不是'0',则报告'失败',所以我已经在实现NUnit调用的InvokeProcess的'Result'中放置了第一步。
在此之后,我已经放置了一个'if'来检查这个回报。如果它与'0'不同(因此一个或多个测试失败),我使用'SetBuildProperties'活动,因此我可以将'TestStatus'设置为BuildPhaseStatus.Failed
答案 2 :(得分:1)