Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SpecFlow-生成错误:无法解析接口_C#_Visual Studio_Specflow - Fatal编程技术网

C# SpecFlow-生成错误:无法解析接口

C# SpecFlow-生成错误:无法解析接口,c#,visual-studio,specflow,C#,Visual Studio,Specflow,我正在清理继承的测试自动化项目,并修复了SpecFlow功能文件中场景名称中的一些拼写错误,然后开始收到此错误: CS1029 #error Generation error: Interface cannot be resolved: TechTalk.SpecFlow.Generator.UnitTestProvider.IUnitTestGeneratorProvider('custom') 没有客户单元测试提供商 我尝试过的事情: 关闭VS,终止所有SpecFlow临时文件,重新启动

我正在清理继承的测试自动化项目,并修复了SpecFlow功能文件中场景名称中的一些拼写错误,然后开始收到此错误:

CS1029
#error Generation error: Interface cannot be resolved: TechTalk.SpecFlow.Generator.UnitTestProvider.IUnitTestGeneratorProvider('custom')
没有客户单元测试提供商

我尝试过的事情:

  • 关闭VS,终止所有SpecFlow临时文件,重新启动VS
  • 已终止*.feature文件并重新创建它
  • 已回滚到SpecFlow的早期版本
  • 注释掉所有场景标记
  • 遵循本文中的步骤:

现在,我的所有功能文件都显示了该错误,而不仅仅是我修复的拼写错误。我正在使用VS2015。知道什么会导致此错误吗?

在app.config中,确保您使用的单元测试提供程序名称对应于实际的测试框架。例:

<specFlow>
   <unitTestProvider name="nUnit" />
</specFlow>


我怀疑测试是使用有效的app.config生成的,但app.config不再有效。当您更改功能文件时,会导致它尝试使用无效的测试框架提供程序名称重新生成测试,从而导致出现您看到的错误消息。

这似乎是SpecFlow 2.2功能文件损坏的问题

对于2.2,删除和重新创建要素文件并不能解决问题。恢复到2.1没有


在恢复到2.1之后,错误仍然发生,直到我删除了功能文件,然后重新创建它。我有8个功能文件,都报告了错误。删除并重新创建每个错误后,所有8个错误都消失了。

这是MsTest.2010。我把它改成了更通用的MsTest,它没有解决这个问题,后来又改回了MsTest.2010。另外,我在几个小时前重建了这个项目,然后它就建得很好了。我曾经看到这个错误在应用了无效标记的情况下发生过。去掉标签就解决了这个问题。但是这种情况下没有标签。你有自定义插件吗?你能发布app.config的完整specflow部分吗?你使用的是哪个版本的specflow+?@AndreasWillich,根据下面的说明,使用的是2.2,恢复到2.1,问题就消失了。app.config部分如下所示: