C# XUnit测试netcoreapp1.1和net462下的不同结果
我在VS2017中创建了一个XUnit测试项目,它的目标框架是netcoreapp1.1,下面的代码工作正常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()
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这一事实的制约