Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.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# 使用IClassFixture时输出XUnit.net core的测试结果_C#_Asp.net Core Webapi_Xunit.net - Fatal编程技术网

C# 使用IClassFixture时输出XUnit.net core的测试结果

C# 使用IClassFixture时输出XUnit.net core的测试结果,c#,asp.net-core-webapi,xunit.net,C#,Asp.net Core Webapi,Xunit.net,我一直使用Nunit,现在搬到了XUnit 当我未实施IClassFixture时,我成功地使用了ITestOutputHelper,例如: public myClassTest(ITestOutputHelper outputHelper) { this.outputHelper = outputHelper; } 但是,当我实现IClassFixture时,我找不到注入ITestOutputHelper的方法 无法实现ITestOutputHelper的示例 public clas

我一直使用Nunit,现在搬到了XUnit

当我未实施
IClassFixture
时,我成功地使用了
ITestOutputHelper
,例如:

public myClassTest(ITestOutputHelper outputHelper)
{
    this.outputHelper = outputHelper;
}
但是,当我实现
IClassFixture
时,我找不到注入
ITestOutputHelper
的方法

无法实现ITestOutputHelper的示例

public class MyIntegrationTests : IClassFixture<TestServerFixture<Startup>>
{
    public MyIntegrationTests (TestServerFixture<Startup> testServerFixture)
    {
        client = testServerFixture.Client;
    }
}
公共类MyIntegrationTests:IClassFixture
{
公共MyIntegrationTests(TestServerFixture TestServerFixture)
{
client=testServerFixture.client;
}
}

我是否忽略了显而易见的问题?

它应该通过以下方式工作:

public class MyIntegrationTests : IClassFixture<TestServerFixture<Startup>>
{
    public MyIntegrationTests (TestServerFixture<Startup> testServerFixture, ITestOutputHelper outputHelper)
    {
        client = testServerFixture.Client;
        this.outputHelper = outputHelper;
    }
}
公共类MyIntegrationTests:IClassFixture
{
公共MyIntegrationTests(TestServerFixture TestServerFixture,ITestOutputHelper outputHelper)
{
client=testServerFixture.client;
this.outputHelper=outputHelper;
}
}
作为
ITestOutputHelper
,所有声明的类和共享装置都可以通过这种方式提供


在输出窗口(Ctrl-Alt-O)的测试面板中,您收到了什么消息?

我真傻。这很有效,因为某些原因,我在执行您的建议时遇到了一个错误。没关系,谢谢!!最后一件事。这些输出都不会显示在输出窗口中,仅在测试运行程序屏幕中正确。正确吗?@developer9969是的,我认为这个输出接收器不会向测试运行程序主机以外的任何地方发出,因为并行运行是交错的,因此会造成混乱。你可以很容易地装饰它和/或制作一个固定装置来包装它,并进行
跟踪。WriteLine
我猜。当我上一次查看大约2年前的IIRC时,它是一个VS错误,输出没有在VS中呈现(我倾向于记录到Seq以了解这类事情,尽管无可否认,这并不能解决与测试用例运行相关的问题)