如何在 Visual Studio 错误列表中显示失败的 NUnit 测试

How to display failed NUnit tests in Visual Studio Error List

在 Visual Studio (2017) 我有两个项目:一个包含业务逻辑 (MyProject) 和一个包含一些 NUnit 测试 (MyProject.Tests)。 MyProject 具有以下 Post-Build 事件:

[path to nunit]\nunit-console.exe [path to MyProject.Tests]\MyProject.Tests.dll

构建 MyProject 时,MyProject.Tests 中的测试为 运行。输出 window 显示了 运行 在项目中测试的详细结果,这很棒。但是,这些结果很容易在输出的其他信息流中丢失 window,尤其是在同时构建其他项目的情况下。

如果任何测试失败,Visual Studio 的错误列表中会显示以下消息:

The command "[path to nunit]\nunit-console.exe [path to MyProject.Tests]\MyProject.Tests.dll" exited with code 3.

这很好看;我喜欢它就在我可以找到编译错误等的地方。我认为错误列表也会显示每个失败的单元测试,所以我可以快速导航到每个单元测试,但目前它没有。

我已经从控制台查看了 运行ning NUnit 测试的各种命令行选项,但我还没有找到任何方法来格式化输出,使其能够被识别错误列表。可以这样做吗?

注意:如果其中一项测试出现错误(即测试由于错误而无法运行),该错误将出现在Visual Studio 错误列表。不过,普通测试失败的情况并非如此。

我有一个看起来可行的解决方案,尽管它确实需要一些额外的步骤。如果有人知道 easier/more 直接解决方案,请随时加入。

我能够利用两件事:

  1. NUnit 将每个测试的结果导出 运行 一个 XML 文件(参见 Specifying the XML result file name)和
  2. 控制台消息 can be formatted 出现在 Visual Studio 错误列表中的特定方式。

所以我创建了一个简单的控制台项目,它读取 NUnit 生成的 XML 文件,然后以需要的格式将每个测试失败打印到控制台。我的 post-build 事件现在看起来像

[path to nunit]\nunit-console.exe [path to MyProject.Tests]\MyProject.Tests.dll /work:[path to results.xml]
[path to my xml parser] [path to results.xml]