首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpecFlow:打开一个特性文件将生成一个NullReferenceException

SpecFlow:打开一个特性文件将生成一个NullReferenceException
EN

Stack Overflow用户
提问于 2021-02-16 10:47:42
回答 2查看 164关注 0票数 0

从几周以来,我突然对VisualStudio2019(专业版)中的SpecFlow扩展产生了问题。突然间它停止工作了。首先,我认为是因为VS的更新,但是我的其他同事正在使用相同(最新)版本的VS,而SpecFlow对他们来说是有效的。

我遇到的问题是:

打开功能文件时的

  • 无设置菜单( SpecFlow (Tools - Options - SpecFlow)
  • A NullReferenceException )

测试资源管理器仍然在发现测试,我仍然可以运行它们,但不能从特性文件中运行它们(也不能调试这些步骤)。

已正确安装并启用了扩展插件(据我所知)。已经尝试了以下方法,但没有成功:

extension

  • Uninstall
  • 卸载和安装SpecFlow for Visual 2019 SpecFlow SpecFlow和安装SpecFlow Visual 2019,然后再安装

你们中有谁知道是什么原因造成的?

活动日志条目

代码语言:javascript
复制
<entry>
  <record>806</record>
  <time>2021/02/09 09:25:56.786</time>
  <type>Error</type>
  <source>Editor or Editor Extension</source>
  <description>System.NullReferenceException: Object reference not set to an instance of an object.&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.LanguageService.ProjectScopeFactory.&lt;.ctor&gt;b__9_0() in D:\a\1\s\TechTalk.SpecFlow.VSIXShared\LanguageService\ProjectScopeFactory.cs:line 52&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.Implementation.Utils.SynchInitializedInstance`1.EnsureInitialized()&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.LanguageService.ProjectScopeFactory.&lt;.ctor&gt;b__9_2(Project project) in D:\a\1\s\TechTalk.SpecFlow.VSIXShared\LanguageService\ProjectScopeFactory.cs:line 64&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.Implementation.Utils.SynchronizedResultCache`3.GetOrCreate(TSource source)&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.LanguageService.ProjectScopeFactory.GetProjectScope(Project project) in D:\a\1\s\TechTalk.SpecFlow.VSIXShared\LanguageService\ProjectScopeFactory.cs:line 76&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.LanguageService.GherkinLanguageServiceFactory.CreateLanguageService(ITextBuffer textBuffer) in D:\a\1\s\TechTalk.SpecFlow.VSIXShared\LanguageService\GherkinLanguageServiceFactory.cs:line 51&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.LanguageService.GherkinLanguageServiceFactory.&lt;&gt;c__DisplayClass7_0.&lt;GetLanguageService&gt;b__0() in D:\a\1\s\TechTalk.SpecFlow.VSIXShared\LanguageService\GherkinLanguageServiceFactory.cs:line 43&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.LanguageService.GherkinBufferServiceManager.&lt;&gt;c__DisplayClass3_0`1.&lt;GetOrCreate&gt;b__0() in D:\a\1\s\TechTalk.SpecFlow.VSIXShared\LanguageService\GherkinBufferServiceManager.cs:line 32&#x000D;&#x000A;
    at Microsoft.VisualStudio.Utilities.PropertyCollection.GetOrCreateSingletonProperty[T](Object key, Func`1 creator)&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.LanguageService.GherkinBufferServiceManager.GetOrCreate[TService](ITextBuffer textBuffer, Func`1 creator) in D:\a\1\s\TechTalk.SpecFlow.VSIXShared\LanguageService\GherkinBufferServiceManager.cs:line 29&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.LanguageService.GherkinLanguageServiceFactory.GetLanguageService(ITextBuffer textBuffer) in D:\a\1\s\TechTalk.SpecFlow.VSIXShared\LanguageService\GherkinLanguageServiceFactory.cs:line 43&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.GherkinFileEditor.GherkinFileClassifierProvider.&lt;&gt;c__DisplayClass3_0.&lt;GetClassifier&gt;b__0() in D:\a\1\s\TechTalk.SpecFlow.VSIXShared\GherkinFileEditor\GherkinFileClassifierProvider.cs:line 31&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.LanguageService.GherkinBufferServiceManager.&lt;&gt;c__DisplayClass3_0`1.&lt;GetOrCreate&gt;b__0() in D:\a\1\s\TechTalk.SpecFlow.VSIXShared\LanguageService\GherkinBufferServiceManager.cs:line 32&#x000D;&#x000A;
    at Microsoft.VisualStudio.Utilities.PropertyCollection.GetOrCreateSingletonProperty[T](Object key, Func`1 creator)&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.LanguageService.GherkinBufferServiceManager.GetOrCreate[TService](ITextBuffer textBuffer, Func`1 creator) in D:\a\1\s\TechTalk.SpecFlow.VSIXShared\LanguageService\GherkinBufferServiceManager.cs:line 29&#x000D;&#x000A;
    at TechTalk.SpecFlow.VsIntegration.GherkinFileEditor.GherkinFileClassifierProvider.GetClassifier(ITextBuffer buffer) in D:\a\1\s\TechTalk.SpecFlow.VSIXShared\GherkinFileEditor\GherkinFileClassifierProvider.cs:line 30&#x000D;&#x000A;
    at Microsoft.VisualStudio.Text.Classification.Implementation.ClassifierTaggerProvider.&lt;&gt;c__DisplayClass12_0`1.&lt;CreateTagger&gt;b__0(IClassifierProvider provider)&#x000D;&#x000A;
    at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.InvokeEligibleFactories[TExtensionInstance,TExtensionFactory,TMetadataView](IEnumerable`1 lazyFactories, Func`2 getter, IContentType dataContentType, IContentTypeRegistryService contentTypeRegistryService, Object errorSource)&#x000D;&#x000A;--- End of stack trace from previous location where exception was thrown ---&#x000D;&#x000A;
    at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)
  </description>
</entry>

编辑:运行VS的修复后,我可以看到‘清除MEF组件缓存’扩展的菜单选项。不幸的是,在SpecFlow扩展(仍然是相同的问题)中,使用它并没有让我更进一步。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-19 11:48:59

由于不同的问题,我收到了一个完整的新形象,我的笔记本电脑从IT部门。因此,SpecFlow的问题也得到了解决。我仍然不知道到底是什么原因造成了这种情况,但我的猜测可能会转到一个稍微损坏的注册表或类似的地方。

不管怎样,不用再回答这个问题了。

票数 0
EN

Stack Overflow用户

发布于 2021-02-16 12:05:22

这看起来像Visual的MEF缓存有问题。

清理它的一个简单方法是来自Mads的Clear MEF Component Cache扩展。它可以在市场上找到:https://marketplace.visualstudio.com/items?itemName=MadsKristensen.ClearMEFComponentCache

安装它后,在VS重新启动后,在菜单中执行命令:

在此之后,重新启动VS,并且SpecFlow VS扩展应该再次工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66222929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档