在Visual Studio 2013中生成单元测试报告

3

我在Visual Studio 2013的C#项目中拥有一组单元测试。是否有一种方法可以从单元测试结果生成报告?

我需要一个报告作为测试运行时间和结果的证明。我不是指在线CI服务器报告,而是本地文件报告。是否有适用于VS2013的好用的插件?

我研究了NUnit插件及其XML输出,但它并不是非常准确,很多数据显示重复且不准确(例如我的操作系统类型)。目前我仍然使用Visual Studio MSTest测试框架。


1
由于测试将在每个开发者的机器上运行,您需要寻找一种集中运行这些报告的方式。构建和使用一个 CI(持续集成)服务器,并在触发构建时生成报告。 - Adrian Thompson Phillips
那听起来是一个很棒的系统设计,我会去研究一下,谢谢。然而,“生成报告”的阶段却让我卡住了。我在Visual Studio 2013中没有看到任何可用于生成正式报告的功能,也没有任何外部工具(除了Nunit),但我不是很喜欢它。我认为报告应该是必要的。 - Spirit
1
如果你搜索你选择的CI服务器和“单元测试报告”或“代码覆盖率报告”,你应该能够找到所有你需要的信息。例如,如果你有可用的许可证,TFS可能是一个明显的选择,或者你可以看看其他CI服务器,比如TeamCity或CruiseControl。 - Adrian Thompson Phillips
2个回答

4
我建议使用命令行中的vstest.console.exe来生成测试结果,命令格式如下:

vstest.console.exe YourTestProject.dll /Logger:trx

生成的结果将会以“username_PCName YYYY-MM-DD HH_MM_SS.trx”格式保存。然后进入结果输出的文件夹,并使用trx2html(这个版本支持VS2012+)将结果转换成HTML报表。

trx2html.exe “username_PCName YYYY-MM-DD HH_MM_SS.trx”

我知道你想要一个插件,但也许这个方法能满足你的需求!



2
您最好做的事情是建立持续集成和持续交付。
例如,我们公司已经设置了以下流程: Jenkins (管理流程) SVN触发器-> MSBUILD -> 单元测试(Nunit) -> SONAR -> 部署(MSDEPLOY) -> 烟雾测试(部署是否成功?) -> 回滚(MSDEPLOY) -> SELENIUM测试。
在这个过程中,我们有代码遵循和构建破坏器来阻止任何单元测试不工作,基本上如果任何一个失败,您不能部署。这个想法是无懈可击的。同时,交付管道可视化工具非常棒。
您可以从Nunit的命令行中提取XML报告到Sonar中,我自己也遇到了一些问题,但您需要在检查测试之前重新构建并运行测试以针对dll文件本身。
希望这会有所帮助。

谢谢,这很有用,但我正在寻找一个插件,可以将Visual Studio的单元测试结果输出到XML或Word文档中。因为我需要在本地生成报告,而不是只关注CI服务器,这不是我需要的。但还是感谢您提供的信息。 - Spirit
好的,这并不适合所有人,我本来会写成评论的,但当时我没有足够的积分。 - Netferret

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接