使用 XUnit.Net 和 VS2017 捕获测试输出

Posted

技术标签:

【中文标题】使用 XUnit.Net 和 VS2017 捕获测试输出【英文标题】:Capturing test output with XUnit.Net and VS2017 【发布时间】:2017-09-09 09:29:24 【问题描述】:

VS2017 社区版预装了 Xunit 的测试项目模板。我有一个 Dotnet Standard 1.4 类库和一个 Dotnet Core 1.1 XUnit 测试项目。这很好用,一切都构建好了,我可以从 Visual Studio 测试资源管理器运行所有测试,如果我的测试写入 ITestOutputHelper,测试资源管理器会显示一个“输出”链接,我可以在其中查看测试的输出。

问题是,如果我有大量测试,我不想点击每个测试,然后点击每个“输出”链接才能查看结果。相反,我想在某种输出文件中查看结果。

Xunit 文档表明它确实能够以 xml 格式输出测试结果。

http://xunit.github.io/docs/format-xml-v2.html

但它没有解释如何让它做到这一点。

如何让 Xunit 将测试输出保存到文件中?

【问题讨论】:

你能从命令行而不是 VS Test Explorer 运行测试吗? dotnet 测试 -xml /some/path/out.xml。见线程github.com/dotnet/cli/issues/3114 【参考方案1】:

xUnit logger 可以生成 xUnit v2 格式 (https://xunit.github.io/docs/format-xml-v2.html) 的 xml 报告。

    在测试项目中添加对 xUnit Logger nuget 包的引用。

    在测试中使用以下命令行:

    dotnet test --test-adapter-path:. --logger:xunit
    

    测试结果在相对于test.csprojTestResults 目录中生成。报告文件的路径可以指定如下:

    dotnet test --test-adapter-path:. --logger:xunit;LogFilePath=loggerFile.xml 
    

    loggerFile.xml 将在与test.csproj 相同的目录中生成。

【讨论】:

以上是关于使用 XUnit.Net 和 VS2017 捕获测试输出的主要内容,如果未能解决你的问题,请参考以下文章

那些年用过的xUnit.net的简单用法

STM-32:TIM输入捕获—输入捕获模式测频率/PWMI模式同时测量频率和占空比

Xunit常用断言整理&带一点Shouldly介绍

|测| Taylor GS Mini-e BassGS Mini-e KoaWalnut vs Standard

使用 vs2008 进行负载测试,如何从被测系统获取统计信息?

VS中捕获内存泄露