C# XUnit测试netcoreapp1.1和net462下的不同结果

C# XUnit测试netcoreapp1.1和net462下的不同结果,c#,.net-core,autofac,xunit,C#,.net Core,Autofac,Xunit,我在VS2017中创建了一个XUnit测试项目,它的目标框架是netcoreapp1.1,下面的代码工作正常 using Xunit; using Xunit.Abstractions; using Xunit.Ioc.Autofac; namespace XUnitTestProject2 { [UseAutofacTestFramework] public class MyAwesomeTests { public MyAwesomeTests()

我在VS2017中创建了一个XUnit测试项目,它的目标框架是netcoreapp1.1,下面的代码工作正常

using Xunit;
using Xunit.Abstractions;
using Xunit.Ioc.Autofac;

namespace XUnitTestProject2
{
    [UseAutofacTestFramework]
    public class MyAwesomeTests
    {
        public MyAwesomeTests()
        {
        }

        public MyAwesomeTests(ITestOutputHelper outputHelper)
        {
            _outputHelper = outputHelper;
        }

        [Fact]
        public void AssertThatWeDoStuff()
        {
            _outputHelper.WriteLine("Hello");
        }

        private readonly ITestOutputHelper _outputHelper;
    }
}

using Autofac;
using System.Reflection;
using Xunit;
using Xunit.Abstractions;
using Xunit.Ioc.Autofac;
using Xunit.Sdk;


[assembly: TestFramework("XUnitTestProject2.ConfigureTestFramework", "XUnitTestProject2")]
namespace XUnitTestProject2
{
    public class ConfigureTestFramework : AutofacTestFramework
    {
        private const string TestSuffixConvention = "Tests";

        public ConfigureTestFramework(IMessageSink diagnosticMessageSink)
            : base(diagnosticMessageSink)
        {
            var builder = new ContainerBuilder();
            builder.RegisterAssemblyTypes(typeof(ConfigureTestFramework).GetTypeInfo().Assembly)
                .Where(t => t.Name.EndsWith(TestSuffixConvention));

            builder.RegisterType<TestOutputHelper>().AsSelf().As<ITestOutputHelper>().InstancePerLifetimeScope();

            // configure your container
            // e.g. builder.RegisterModule<TestOverrideModule>();

            Container = builder.Build();
        }
    }
}
使用Xunit;
使用Xunit.抽象;
使用Xunit.Ioc.Autofac;
命名空间XUnitTestProject2
{
[使用AutoFacteSFramework]
公共类MyAwesomeTests
{
公共MyAwesomeTests()
{
}
公共MyAwesomeTests(ITestOutputHelper outputHelper)
{
_outputHelper=outputHelper;
}
[事实]
公共无效资产Wedostuff()
{
_outputHelper.WriteLine(“你好”);
}
私有只读ITestOutputHelper\u outputHelper;
}
}
使用Autofac;
运用系统反思;
使用Xunit;
使用Xunit.抽象;
使用Xunit.Ioc.Autofac;
使用Xunit.Sdk;
[程序集:TestFramework(“XUnitTestProject2.ConfigureTestFramework”、“XUnitTestProject2”)]
命名空间XUnitTestProject2
{
公共类ConfigureTestFramework:AutofacTestFramework
{
private const string testsuffexconvention=“Tests”;
公共配置测试框架(IMessageSink diagnosticMessageSink)
:base(诊断消息链接)
{
var builder=new ContainerBuilder();
RegisterAssemblyTypes(typeof(ConfigureTestFramework).GetTypeInfo().Assembly)
.其中(t=>t.Name.EndsWith(TestSuffixConvention));
builder.RegisterType().AsSelf().As().InstancePerLifetimeScope();
//配置您的容器
//例如,builder.RegisterModule();
Container=builder.Build();
}
}
}
但是,如果我将targetframework更改为net462,将找不到测试。
我错过什么了吗?

任何帮助都将不胜感激。

如果您需要针对这两个框架,请使用复数标记`net462;netcoreapp1.1I引用了一个.net framework库,因此我无法以netcoreapp1.1为目标。如果手动编辑
.csproj
文件,则可以添加条件引用。如果您看一下,对.NET framework程序集的引用受到当前目标framework是.NET 4.5这一事实的制约