servicestack,xunit,Asp.net Core,servicestack,Xunit" /> servicestack,xunit,Asp.net Core,servicestack,Xunit" />

Asp.net core ServiceStackHost.Instance已设置(BasicAppHost)

Asp.net core ServiceStackHost.Instance已设置(BasicAppHost),asp.net-core,servicestack,xunit,Asp.net Core,servicestack,Xunit,我正在使用xunit运行测试。它一个接一个地工作正常,但一旦我并行运行它们,servicestack就会抛出异常 System.IO.InvalidDataException : ServiceStackHost.Instance has already been set (BasicAppHost) at ServiceStack.ServiceStackHost.Init() in C:\BuildAgent\work\799c742886e82e6\src\ServiceStack

我正在使用xunit运行测试。它一个接一个地工作正常,但一旦我并行运行它们,servicestack就会抛出异常

 System.IO.InvalidDataException : ServiceStackHost.Instance has already been set (BasicAppHost)
   at ServiceStack.ServiceStackHost.Init() in C:\BuildAgent\work\799c742886e82e6\src\ServiceStack\ServiceStackHost.cs:line 175    

appHost = new BasicAppHost(typeof(AppHost).GetAssembly())
                {
                    ConfigureContainer = container =>
                    {
                        container.Register<IDbConnectionFactory>(
                            new OrmLiteConnectionFactory(":memory:", SqliteDialect.Provider));
                    }
                }
                .Init();
System.IO.InvalidDataException:ServiceStackHost.Instance已设置(BasicAppHost)
在C:\BuildAgent\work\799c742886e82e6\src\ServiceStack\ServiceStackHost.cs中的ServiceStack.ServiceStackHost.Init()处:第175行
appHost=new BasicAppHost(typeof(appHost).GetAssembly())
{
ConfigureContainer=容器=>
{
集装箱。登记(
新的OrmLiteConnectionFactory(“:memory:”,sqlitedialent.Provider));
}
}
.Init();

一次只能为每个AppDomain初始化一个AppHost。如果要并行运行初始化新AppHost的测试,则必须在单独的AppDomain中运行这些测试。

您可以使用ICollectionFixture

在类似BaseFixture的类中初始化appHost

请参见此处的示例: