2016-10-01 31 views
2

我從標準Sitecore.KernelSitecore.Nexus開始。 Sitecore在這裏給出了非常具有描述性的錯誤信息,所以我也添加了DependencyInjection。它帶來了很多的依賴關係,它們不會在配置文件中顯示。正如你所看到的,我使用*.NoReferences版本的Sitecore包來控制依賴關係。什麼是Sitecore FakeDB測試的最小Nugets足跡?

<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> 

之後我卡住了。我得到了一個錯誤,沒有提供對什麼是錯過了很多線索:

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 

那麼,什麼是缺少進行簡單的假DB測試工作?

回答

4

努力在全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> 

這是ckear現在Sitecore的離不開Sitecore.Logging啓動。

需要Lucene.Net爲好,但錯誤它是更有益的:

System.IO.FileNotFoundException:未能加載文件或組件 「Lucene.Net,版本= 3.0.3.0,文化=中性, PublicKeyToken = 85089178b9ac3181'或其依賴項之一。 系統找不到指定的文件。

P.S.如果你不關心引用額外的DLL,您可以添加只有兩個包讓你測試工作 - Sitecore.Nexus(不.NoReferences)和Microsoft.Extensions.DependencyInjection

1

這裏是包我在Fortis單元測試項目中使用的列表:

<packages> 
    <package id="AutoFixture" version="3.0.1" targetFramework="net452" /> 
    <package id="Lucene.Net" version="3.0.3" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.Mvc" version="3.0.50813.1" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.Razor" version="1.0.20105.408" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.WebPages" version="1.0.20105.408" targetFramework="net452" /> 
    <package id="Microsoft.Extensions.DependencyInjection" version="1.0.0" targetFramework="net452" /> 
    <package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="1.0.0" targetFramework="net452" /> 
    <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" /> 
    <package id="NSubstitute" version="1.10.0.0" targetFramework="net452" /> 
    <package id="RazorGenerator.Mvc" version="2.4.7" targetFramework="net452" /> 
    <package id="SharpZipLib" version="0.86.0" targetFramework="net452" /> 
    <package id="Sitecore.Abstractions.NoReferences" version="8.2.160729" targetFramework="net452" developmentDependency="true" /> 
    <package id="Sitecore.Analytics.NoReferences" version="8.2.160729" targetFramework="net452" developmentDependency="true" /> 
    <package id="Sitecore.Buckets.NoReferences" version="8.2.160729" targetFramework="net452" developmentDependency="true" /> 
    <package id="Sitecore.ContentSearch.Linq.NoReferences" version="8.2.160729" targetFramework="net452" developmentDependency="true" /> 
    <package id="Sitecore.ContentSearch.NoReferences" version="8.2.160729" targetFramework="net452" developmentDependency="true" /> 
    <package id="Sitecore.FakeDb" version="1.1.3" targetFramework="net452" /> 
    <package id="Sitecore.FakeDb.AutoFixture" version="1.1.3" targetFramework="net452" /> 
    <package id="Sitecore.FakeDb.NSubstitute" version="1.1.3" targetFramework="net452" /> 
    <package id="Sitecore.FakeDb.Serialization" version="1.1.3" 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" /> 
    <package id="System.Collections" version="4.0.11" targetFramework="net452" /> 
    <package id="System.Collections.Concurrent" version="4.0.12" targetFramework="net452" /> 
    <package id="System.ComponentModel" version="4.0.1" targetFramework="net452" /> 
    <package id="System.Diagnostics.Debug" version="4.0.11" targetFramework="net452" /> 
    <package id="System.Globalization" version="4.0.11" targetFramework="net452" /> 
    <package id="System.Linq" version="4.1.0" targetFramework="net452" /> 
    <package id="System.Linq.Expressions" version="4.1.0" targetFramework="net452" /> 
    <package id="System.Reflection" version="4.1.0" targetFramework="net452" /> 
    <package id="System.Resources.ResourceManager" version="4.0.1" targetFramework="net452" /> 
    <package id="System.Runtime.Extensions" version="4.1.0" targetFramework="net452" /> 
    <package id="System.Threading" version="4.0.11" targetFramework="net452" /> 
    <package id="System.Threading.Tasks" version="4.0.11" targetFramework="net452" /> 
    <package id="WebActivatorEx" version="2.0.3" targetFramework="net452" /> 
    <package id="xunit" version="2.1.0" targetFramework="net452" /> 
    <package id="xunit.abstractions" version="2.0.0" targetFramework="net452" /> 
    <package id="xunit.assert" version="2.1.0" targetFramework="net452" /> 
    <package id="xunit.core" version="2.1.0" targetFramework="net452" /> 
    <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net452" /> 
    <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net452" /> 
    <package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net452" /> 
</packages> 

另外請確保您已將您的/App_Config/Include文件夾設置爲您的配置:Here is the Fortis one