Sitecore FakeDB测试的最小Nugets占用空间是多少?

Dmi*_*ski 3 sitecore sitecore8

我开始与标准Sitecore.KernelSitecore.Nexus.Sitecore在这里提供了非常具有描述性的错误消息,所以我也添加DependencyInjection了.它带来了很多依赖项,并且它们没有显示在config belo中.如您所见,我使用*.NoReferencesSitecore软件包的版本来控制依赖项.

<packages>
  <package id="Microsoft.Extensions.DependencyInjection" version="1.0.0" targetFramework="net452" />
  <package id="Sitecore.FakeDb" version="1.2.2" targetFramework="net452" />
  <package id="Sitecore.Kernel.NoReferences" version="8.2.160729" targetFramework="net452" developmentDependency="true" />
  <package id="Sitecore.Nexus.NoReferences" version="8.2.160729" targetFramework="net452" developmentDependency="true" />
</packages>
Run Code Online (Sandbox Code Playgroud)

之后我卡住了.我收到的错误没有提供错过的内容:

System.NullReferenceException : Object reference not set to an instance of an object.
    at Sitecore.Configuration.DefaultFactory.CreateType(XmlNode configNode, String[] parameters, Boolean assert)
    at Sitecore.Configuration.DefaultFactory.CreateFromTypeName(XmlNode configNode, String[] parameters, Boolean assert)
    at Sitecore.Configuration.DefaultFactory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper)
    at Sitecore.Configuration.DefaultFactory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert)
    at Sitecore.Configuration.DefaultFactory.CreateObject(String configPath, String[] parameters, Boolean assert)
    at Sitecore.Configuration.DefaultFactory.CreateObject(String configPath, Boolean assert)
    at Sitecore.Configuration.DefaultFactory.GetDatabase(String name, Boolean assert)
    at Sitecore.Configuration.DefaultFactory.GetDatabase(String name)
    at Sitecore.Configuration.Factory.GetDatabase(String name)
    at Sitecore.Data.Database.GetDatabase(String databaseName)
    at Sitecore.FakeDb.Db..ctor(String databaseName)
    at Sitecore.FakeDb.Db..ctor()
    at SitecoreTests.Class1.HowToCreateSimpleItem() in C:\prog\temp\SitecoreTests\SitecoreTests\Class1.cs:line 17
Run Code Online (Sandbox Code Playgroud)

那么,简单的假数据库测试工作缺少什么?

Dmi*_*ski 7

尝试完全引用作为依赖项的所有包后,Sitecore.Kernel我结束了这个设置:

<packages>
  <package id="Lucene.Net" version="3.0.3" targetFramework="net452" />
  <package id="Microsoft.Extensions.DependencyInjection" version="1.0.0" targetFramework="net452" />
  <package id="Sitecore.FakeDb" version="1.2.2" targetFramework="net452" />
  <package id="Sitecore.Kernel.NoReferences" version="8.2.160729" targetFramework="net452" developmentDependency="true" />
  <package id="Sitecore.Logging.NoReferences" version="8.2.160729" targetFramework="net452" developmentDependency="true" />
  <package id="Sitecore.Nexus.NoReferences" version="8.2.160729" targetFramework="net452" developmentDependency="true" />
</packages>
Run Code Online (Sandbox Code Playgroud)

现在很清楚,Sitecore无法启动Sitecore.Logging.

Lucene.Net 也需要,但它的错误更有帮助:

System.IO.FileNotFoundException:无法加载文件或程序集"Lucene.Net,Version = 3.0.3.0,Culture = neutral,PublicKeyToken = 85089178b9ac3181"或其依赖项之一.该系统找不到指定的文件.

PS如果你不关心引用额外的DLL,你可以只添加两个包来让你测试工作 - Sitecore.Nexus(没有.NoReferences)和Microsoft.Extensions.DependencyInjection