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