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

Using Sitecore.FakeDB causes error when used in Resharper Test Runner

我已经创建了一些单元测试并且正在使用 Sitecore.FakeDB。

我们还使用 Resharper 运行 我们的测试。

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

样本错误是:

设置:System.InvalidOperationException:无法读取 Sitecore 配置。 在 Sitecore.Configuration.Factory.GetConfiguration()
在 Sitecore.Configuration.Factory.GetConfigNode(字符串 xpath,布尔断言)
在 Sitecore.Configuration.Factory.CreateObject(字符串配置路径、字符串 [] 参数、布尔断言)
在 Sitecore.Configuration.Factory.GetDatabase(字符串名称)
在 Services.Sitecore.ImportSitecoreService..ctor(ILogger 记录器,ISettings 设置)在 ImportSitecoreService.cs:第 15 行
在 Services.Sitecore.Import.BaseImporter`2..ctor(ILogger 记录器,ISettings 设置)在 BaseImporter.cs 中:第 13 行
在 Services.Sitecore.Test.Import.StubImporter..ctor(ILogger 记录器,ISettings 设置)在 BaseImporterTests.cs 中:第 31 行
在 BaseImporterTests.cs 中的 Services.Sitecore.Test.Import.BaseImporterTests.Setup() 处:第 53 行

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

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

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

时失败

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

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

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

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