xunit不会将消息写入"输出"窗格

Far*_*rfi 23 c# xunit.net visual-studio-2015 dnx

在VS 2015社区中,我有一个示例ASP.NET 5(vNext)项目和一个带有单元测试的项目(xUnit.net).DNX的版本是1.0.0-beta5.我的目标是在测试运行期间将消息添加到输出窗格. 在这里我采取了一种方法来做到这一点,所以我的单元测试代码如下所示:

using Xunit;
using Xunit.Abstractions;

namespace UnitTests
{

    public class UnitTest1
    {
        ITestOutputHelper output;

        public UnitTest1(ITestOutputHelper output)
        {
            this.output = output;
        }

        [Fact]
        public void TestTestTest()
        {
            output.WriteLine("Test Message");
            Assert.Equal(2, 2);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

Visual Studio Test Explorer发现了这个测试(没关系),但是我在"输出"窗格(来自"测试")中的所有内容都是:

------ Run test started ------
------ Test started: Project: UnitTests ------
Starting  Microsoft.Framework.TestHost [C:\Users\*******\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta5\bin\dnx.exe --appbase "C:\Users\*******\Documents\Visual Studio 2015\Projects\MvcMovie\UnitTests" Microsoft.Framework.ApplicationHost --port 55837 Microsoft.Framework.TestHost --port 55893]
Connected to Microsoft.Framework.TestHost
Running tests in 'C:\Users\*******\Documents\Visual Studio 2015\Projects\MvcMovie\UnitTests\project.json'
========== Run test finished: 1 run (0:00:03,2267169) ==========
Run Code Online (Sandbox Code Playgroud)

此外,在选定的测试通道信息下没有任何链接"输出",如下所示: 在此输入图像描述 (只有"测试通过......经过的时间......")

我应该怎么做才能使这项ITestOutputHelper工作?

Joe*_*ang 6

请尝试此解决方案。它对我有用。(VS2017 xunit 2.2.0.3545)

尝试在App.Config文件中添加以下配置。(我不知道为什么。只需要它。如果没有退出,只需在测试项目中添加一个新对象。)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="xunit.diagnosticMessages" value="true"/>
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

输出信息将按Test预期方式写入输出中,如下所示。

[xUnit.net 00:00:00.0853907]   Starting:    xxxAssemblyName (parallel test collections = on, max threads = 8)
[xUnit.net 00:00:00.1689373]     Example.xxxTestClassName [PASS]
[xUnit.net 00:00:00.1697265]       Output:
[xUnit.net 00:00:00.1700698]         xxxx your Test Message
[xUnit.net 00:00:00.1797303]   Finished:    xxxAssemblyName 
Run Code Online (Sandbox Code Playgroud)

希望对您有所帮助。请让我知道它是否有效。谢谢。

  • **xunit.runner.json:** `{ "$schema": "https://xunit.github.io/schema/current/xunit.runner.schema.json", "appDomain": "ifAvailable", " diagnosticMessages”:true,“internalDiagnosticMessages”:false,“longRunningTestSeconds”:4,“maxParallelThreads”:8,“methodDisplay”:“classAndMethod”,“methodDisplayOptions”:“none”,“parallelizeAssembly”:true,“parallelizeTestCollections”:true , "preEnumerateTheories": true, "shadowCopy": true }` (4认同)
  • @TGP1994 - 感谢您提供的信息,是的,两个链接现在都已损坏。但我在这里找到了新链接:[已弃用的基于 XML 的配置](https://xunit.net/docs/configuring-with-xml) 和 [基于 JSON 的配置](https://xunit.net/docs/configuration - 文件)。希望有帮助。 (2认同)

ste*_*ano 5

xUnit GitHub 页面所述,我使用了

私有只读ITestOutputHelper 输出;

这对我有用。


小智 -6

只需使用Console.Write()Console.WriteLine()

ReSharper 挂钩于此,您将在测试结果中看到输出。