我的项目中有以下Nuget包。 Specflow v2.4.1 Nunit v3.11 Nunit测试适配器v3.12
当我添加或修改特征文件时,specFlow以某种方式创建/修改设计器生成的文件,指的是旧版本的specFlow。
using TechTalk.SpecFlow;
[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.9.0.77")]
有了这个,我得到构建错误,测试不再运行。
检查问题时,我注意到TestTalk.SpecFlow.dll指向bin / debug文件夹。当我关闭解决方案并从bin / debug文件夹中删除所有文件时,参考路径更改为packages文件夹,然后设计器生成的代码正在选择正确的specflow版本。
执行构建解决方案操作后,问题再次出现(现在Techtalk.specFlow.dll指的是bin / debug文件夹)
我试图删除设计器生成的代码并再次运行自定义工具,但只有当从bin / debug文件夹中删除DLL时才解决问题。
我甚至尝试将Code Behind File Generation设置更改为AppDomain或Out of process,但问题仍然存在。
请帮助解决问题,而不是每次都删除文件。谢谢。
我通过降级NUnit和SpecFlow解决了这个问题。
•Nunit.Framework:3.4.1•SpecFlow:2.3.2