ServiceStackHost.Instance已设置(BasicAppHost)

时间:2017-07-26 16:00:15

标签: asp.net-core servicestack xunit

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

 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();

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

您可以使用ICollectionFixture。

在诸如BaseFixture之类的类中初始化appHost。

在此处查看示例:https://xunit.net/docs/shared-context