簡體   English   中英

SpecFlow FeatureSetup引發System.Reflection.ReflectionTypeLoadException

[英]SpecFlow FeatureSetup throws System.Reflection.ReflectionTypeLoadException

SpecFlow將在FeatureSetup方法中引發System.Reflection.ReflectionTypeLoadException,其中它不提供有關異常的任何信息,並會要求您檢索LoaderExceptions屬性(如下所示的錯誤)。 在生成的FeatureSetup方法的開頭設置調試中斷以查看問題不會觸發中斷。 如何找到此問題的根源?

錯誤:無法加載一種或多種請求的類型。 檢索LoaderExceptions屬性以獲取更多信息。

在生成的FeatureSetup方法中的所有代碼周圍添加一個try / catch塊,並添加Console.WriteLine以輸出每個LoaderException,如下所示。 然后,當您運行測試時,LoaderException消息將顯示在NUnit GUI屏幕上。 StackFlow鏈接如何檢索LoaderException屬性? 非常有幫助。

        try
        {
            testRunner = TechTalk.SpecFlow.TestRunnerManager.GetTestRunner();
            TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "MyTest", null, ProgrammingLanguage.CSharp, ((string[])(null)));
            testRunner.OnFeatureStart(featureInfo);
        }
        catch (Exception e)
        {
            var typeLoadException = e as ReflectionTypeLoadException;
            var loaderExceptions = typeLoadException.LoaderExceptions;
            foreach (Exception le in loaderExceptions)
                Console.WriteLine("LoaderException Msg = {0}", le.Message);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM