我正在清理一个继承的测试自动化项目并修复SpecFlow功能文件中方案名称中的一些拼写错误,然后开始收到此错误:
CS1029
#error Generation error: Interface cannot be resolved: TechTalk.SpecFlow.Generator.UnitTestProvider.IUnitTestGeneratorProvider('custom')
没有客户单元测试提供商。
我尝试过的事情:
现在,我的所有功能文件都显示错误,而不仅仅是我修复了拼写错误的错误。我正在使用VS2015。什么可能导致这个错误的想法?
答案 0 :(得分:1)
在app.config中,确保您使用的单元测试提供程序名称对应于实际的测试框架。例如:
<specFlow>
<unitTestProvider name="nUnit" />
</specFlow>
我怀疑测试是使用有效的app.config生成的,但app.config不再有效。当您更改了功能文件时,它会导致它尝试使用无效的测试框架提供程序名称重新生成测试,从而导致您看到错误消息。
答案 1 :(得分:1)
这似乎是SpecFlow 2.2功能文件损坏的一些问题。
使用2.2,删除和重新创建功能文件无法解决问题。恢复到2.1。
恢复到2.1之后,错误仍然发生在我删除功能文件然后重新创建它之前。我有8个功能文件,都报告错误。删除并重新创建每个错误后,所有8个错误都消失了。