Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# xUnit没有';t将消息写入输出窗格_C#_Visual Studio 2015_Xunit.net_Dnx - Fatal编程技术网

C# xUnit没有';t将消息写入输出窗格

C# xUnit没有';t将消息写入输出窗格,c#,visual-studio-2015,xunit.net,dnx,C#,Visual Studio 2015,Xunit.net,Dnx,在VisualStudio2015社区中,我有一个示例ASP.NET5(vNext)项目和一个带有单元测试的项目(xUnit.NET)。DNX的版本是1.0.0-beta5。我的目标是在测试运行期间将消息添加到输出窗格。 我采取了一种方法来实现这一点,因此我的单元测试代码如下所示: 使用Xunit; 使用Xunit.抽象; 命名空间单元测试 { 公共类UnitTest1 { ITestOutputHelper输出; 公共单元测试1(ITestOutputHelper输出) { 这个。输出=输出;

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

使用Xunit;
使用Xunit.抽象;
命名空间单元测试
{
公共类UnitTest1
{
ITestOutputHelper输出;
公共单元测试1(ITestOutputHelper输出)
{
这个。输出=输出;
}
[事实]
公共void test()
{
output.WriteLine(“测试消息”);
断言。相等(2,2);
}
}
}
Visual Studio测试资源管理器发现此测试(没关系),但我在“输出”窗格中(来自测试)的所有内容是:

此外,在所选测试运行信息下没有任何链接“输出”,如下所示: (仅“测试通过…运行时间…”)


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

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


ReSharper钩住这个,您将在测试结果中看到输出。

这个解决方案适合我(Visual Studio 2017和xUnit 2.2.0.3545)

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


输出信息将写入
Test
output,如下所示

[xUnit.net 00:00:00.0853907]开始:xxxAssemblyName(并行测试集合=on,最大线程数=8)
[xUnit.net 00:00:00.1689373]Example.xxxTestClassName[PASS]
[xUnit.net 00:00:00.1697265]输出:
[xUnit.net 00:00:00.1700698]xxxx您的测试消息
[xUnit.net 00:00:00.1797303]完成:xxxAssemblyName

在使用NUnit很长一段时间后,我第一次使用xUnit时也遇到了这个问题

令人惊讶的是,xUnit不直接支持控制台输出,但提供了一些其他方法来实现同样的功能

如果你不是真的投资于xUnit,我会说最简单的方法就是使用NUnit,或者因为两者都支持简单的
控制台

private readonlyITestOutputHelper输出


这对我很有用。

仅对于ITestOutputHelper实现,以下工作:

同样,您必须将{add key=“xunit.diagnosticMessages”value=“true”}放在单元测试项目的App.config中

作为,您必须将ITestOutputHelper类型的本地成员添加到测试类中。您必须将其添加到构造函数的参数中,并将注入的对象分配给本地成员

您应该在使用输出方法检测后重新生成

你一定是考试不及格

对输出方法的调用应在/a失败测试之前进行


每次测试都有效!不适用于测试套件。

我也遇到了同样的问题,还没有找到解决方案。@TimothyShields,但是,当测试失败时,似乎是这样。但如果它经过(比如在照片上…)就不会有趣了。。。你的意思是你确实得到了失败测试的输出?@TimothyShields是的,在同一个测试中,如果我写Assert.Equal(2,3),我会得到一个链接“output”。点击它会产生一个带有“标准输出”文本块的新选项卡。它不会为成功的测试保存输出,这实际上可能是由设计造成的。注意:基于XML的配置已经,如果可能的话,使用now.xunit.runner.json:
{“$schema”:https://xunit.github.io/schema/current/xunit.runner.schema.json“,“appDomain”:“如果可用”,“diagnosticMessages”:true,“internalDiagnosticMessages”:false,“longRunningTestSeconds”:4,“maxParallelThreads”:8,“methodDisplay”:“classAndMethod”,“methodDisplayOptions”:“none”,“parallelizeAssembly”:true,“parallelizeTestCollections”:true,“PreEnumeratedTheories”:true,“shadowCopy”:true}
您的答案有效,谢谢!注意:我正在使用上面的
xunit.runner.json
文件,设置
“diagnosticMessages”“:true
请记住将文件xunit.runner.json设置为CopyAlways,这让我旋转了一段时间while@TGP1994-谢谢你提供的信息,是的,现在两个链接都断了。但我在这里找到了新的链接:和。希望有帮助。
------ 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) ==========