在Resharper Test Runner中使用时,使用Sitecore.FakeDB会导致错误

时间:2015-04-07 09:56:35

标签: unit-testing sitecore

我创建了一些单元测试,我使用的是Sitecore.FakeDB。

我们也使用Resharper来运行我们的测试。

当我们使用Resharper测试运行器来运行所有测试时,使用Sitecore.FakeDB的测试会抛出错误:

示例错误是:

SetUp:System.InvalidOperationException:无法读取Sitecore配置。    在Sitecore.Configuration.Factory.GetConfiguration()
   at Sitecore.Configuration.Factory.GetConfigNode(String xpath,Boolean assert)
   at Sitecore.Configuration.Factory.CreateObject(String configPath,String [] parameters,Boolean assert)
   at Sitecore.Configuration.Factory.GetDatabase(String name)
   在ImportSitecoreService.cs中的Services.Sitecore.ImportSitecoreService..ctor(ILogger logger,ISettings设置):第15行
   在BaseImporter.cs中的Services.Sitecore.Import.BaseImporter`2..ctor(ILogger logger,ISettings设置):第13行
   在BaseImporterTests.cs中的Services.Sitecore.Test.Import.StubImporter..ctor(ILogger logger,ISettings设置):第31行
   在BaseImporterTests.cs中的Services.Sitecore.Test.Import.BaseImporterTests.Setup():第53行

现在,如果我们在Resharper测试运行器中单独运行测试,那么测试会成功运行并通过。

在TeamCity中运行测试时,测试全部通过,没有错误。

无法解释为什么会发生这种情况,因为它不是在其他情况下工作的测试代码。即在一些开发者机器上,测试总是通过,但在其他测试运行时,其他测试失败。

使用NuGet安装Sitecore.FakeDB软件包。 我已经检查过,测试应用程序确实看起来已经正确配置了app.config。

1 个答案:

答案 0 :(得分:2)

您的Resharper Unit测试设置是什么样的? (Resharper>选项>工具>单元测试)

我遇到并行单元测试执行问题,并将Run up to [X] assemblies in parallel设置为1。

如果您有多个使用FakeDB的测试程序集,也可以尝试检查Use separate AppDomain for each assembly with tests