SpecFlow - Generation error: Interface cannot be resolved
SpecFlow - Generation error: Interface cannot be resolved
我正在清理一个继承的测试自动化项目并修复了 SpecFlow 功能文件中场景名称中的一些拼写错误,然后开始收到此错误:
CS1029
#error Generation error: Interface cannot be resolved: TechTalk.SpecFlow.Generator.UnitTestProvider.IUnitTestGeneratorProvider('custom')
没有客户单元测试提供商。
我尝试过的事情:
- 关闭 VS,杀死所有 SpecFlow 临时文件,重新启动 VS
- 杀死 *.feature 文件并重新创建它。
- 回滚到以前版本的 SpecFlow
- 注释掉所有场景标签
- 按照本文中的步骤操作:https://github.com/techtalk/SpecFlow/wiki/Troubleshooting-Visual-Studio-Integration
现在,我所有的功能文件都显示该错误,而不仅仅是我修复拼写错误的文件。我使用的是 VS2015。有什么想法会导致此错误吗?
在 app.config 中,确保您使用的单元测试提供商名称与实际测试框架相对应。例如:
<specFlow>
<unitTestProvider name="nUnit" />
</specFlow>
我怀疑测试是使用有效的 app.config 生成的,但 app.config 不再有效。当您更改功能文件时,它会导致它尝试使用无效的测试框架提供程序名称重新生成测试,从而导致您看到错误消息。
这似乎是 SpecFlow 2.2 功能文件损坏的问题。
对于 2.2,删除并重新创建功能文件并没有解决问题。恢复到 2.1 就可以了。
恢复到 2.1 后,错误仍然出现,直到我删除了功能文件然后重新创建它。我有 8 个功能文件,都报告了错误。删除并重新创建每个错误后,所有 8 个错误都消失了。
我正在清理一个继承的测试自动化项目并修复了 SpecFlow 功能文件中场景名称中的一些拼写错误,然后开始收到此错误:
CS1029
#error Generation error: Interface cannot be resolved: TechTalk.SpecFlow.Generator.UnitTestProvider.IUnitTestGeneratorProvider('custom')
没有客户单元测试提供商。
我尝试过的事情:
- 关闭 VS,杀死所有 SpecFlow 临时文件,重新启动 VS
- 杀死 *.feature 文件并重新创建它。
- 回滚到以前版本的 SpecFlow
- 注释掉所有场景标签
- 按照本文中的步骤操作:https://github.com/techtalk/SpecFlow/wiki/Troubleshooting-Visual-Studio-Integration
现在,我所有的功能文件都显示该错误,而不仅仅是我修复拼写错误的文件。我使用的是 VS2015。有什么想法会导致此错误吗?
在 app.config 中,确保您使用的单元测试提供商名称与实际测试框架相对应。例如:
<specFlow>
<unitTestProvider name="nUnit" />
</specFlow>
我怀疑测试是使用有效的 app.config 生成的,但 app.config 不再有效。当您更改功能文件时,它会导致它尝试使用无效的测试框架提供程序名称重新生成测试,从而导致您看到错误消息。
这似乎是 SpecFlow 2.2 功能文件损坏的问题。
对于 2.2,删除并重新创建功能文件并没有解决问题。恢复到 2.1 就可以了。
恢复到 2.1 后,错误仍然出现,直到我删除了功能文件然后重新创建它。我有 8 个功能文件,都报告了错误。删除并重新创建每个错误后,所有 8 个错误都消失了。