私はSitecoreデベロッパーであり、私のユニットテストではSitecore.FakeDbを使用します。Sitecore.FakeDbを使用したユニットテストGetItemのSitecore.Nexusインスタンシエーションエラーが発生しました
System.TypeInitializationException:サイトコア「のタイプ初期化子」私は.GetItem上記2(...)の行のいずれかを試してみたときに、私は次のエラーを取得する
[TestClass]
public class UnitTest1
{
[TestMethod]
public void Test_ArticleController_With_SitecoreItem()
{
Sitecore.Data.ID about_us_itemId = Sitecore.Data.ID.NewID;
Sitecore.Data.ID careers_itemId = Sitecore.Data.ID.NewID;
using (var db = new Sitecore.FakeDb.Db
{
new Sitecore.FakeDb.DbItem("about-us", about_us_itemId)
{
new Sitecore.FakeDb.DbField(SitecoreFieldIds.WTW_REDIRECT_TO) { Value = "/WTW-Home/about-us/overview" }
},
new Sitecore.FakeDb.DbItem("careers", careers_itemId)
{
new Sitecore.FakeDb.DbField(SitecoreFieldIds.WTW_REDIRECT_TO) { Value = "http://careers.willistowerswatson.com" }
}
})
{
Sitecore.Data.Items.Item sampleItem3 = db.GetItem(about_us_itemId); // throws error
Sitecore.Data.Items.Item sampleItem2 = db.GetItem("/sitecore/content/careers"); //throws error
//Assert
Assert.AreEqual("abc", "abc");
};
}
}
:私は、次のコードを持っています.SecurityModel.License.LicenseManager 'が例外をスローしました。 と、InvalidOperationException:Sitecore.FakeDb、Sitecore.Kernelを、:私は私のユニットテストプロジェクトに(とりわけ)以下の関連文献が含まれている「Sitecore.Nexus Sitecore.Nexus.Licensing.NexusLicenseApi」
をタイプをインスタンス化できませんでしたSitecore.Mvc、Moq、Glass.Mapper、Glass.Mapper.Sc、Glass.Mapper.Sc.Mvc、Castle.Core。私はSitecore.Nexusが必要ですか?はいの場合、どこから入手できますか?
私が持っているApp_Config /これでこの設定あり/ Sitecore.FakeDb.configファイルだけでなく、App_Config/app.configファイル、インクルード:
<sitecore>
<settings>
<setting name="LicenseFile" value="..\..\license.xml" />
</settings>
</sitecore>
このエラーがある理由上の任意のアイデアを発生し、正確にそれを修正する方法?ここで
ことができます場合は、完全なスタックトレースです:
System.TypeInitializationExceptionが発生した HRESULT = 0x80131534 メッセージ= 'Sitecore.SecurityModel.License.LicenseManager' のタイプ初期化子が例外をスローしました。 = Sitecore.Kernel のStackTrace 出典:Sitecore.SecurityModel.License.LicenseManager.DemandRuntime(ブールacceptExpress)で Sitecore.Data.Managers.DefaultItemManager.get_FallbackProviderで ()Sitecore.Data.Managers.DefaultItemManagerで 。 Sitecore.Data.Managers.DefaultItemManager.ExecuteAndReturnResultで<> c__DisplayClass2f.b__2e() [TArgs、TResult](文字列pipelineName、列pipelineDomain、のFunc 1 pipelineArgsCreator, Func
1 fallbackResult) Sitecore.Data.Managers.DefaultItemManager.GetItem(IDのitemId、で(ID itemId、言語言語、バージョンバージョン、データベースデータベース) Sitecore.Data.Managers.ItemManager.GetItem(ID itemId(IDアイテムID)、言語バージョン、バージョンデータベース、セキュリティチェックセキュリティチェック) 、言語バージョン、バージョンデータベース、データベースデータベース) at Sitecore.Data.DefaultDatabase.GetItem(ID itemId) at Sitecore.FakeDb.Db.GetItem(ID id) at WTW.Feature.HomeBottomContent.Tests.UnitTest1.Test_ArticleController_With_ CでSitecoreItem():\ DEV \タワーズワトソン\ DEVメンテナンス\ソース\フィーチャー\ \ HomeBottomContent UnitTest1.cs \テスト\:ライン76
内部例外1: InvalidOperationExceptionが:型「Sitecore.Nexusをインスタンス化できませんでした。 Licensing.NexusLicenseApi、Sitecore.Nexus '
このような目的でNugetを使用する方がよい –