SpecRun.SpecFlow为何有多个NuGet包?应选择哪一款?
关于NuGet中多个SpecRun.SpecFlow包的疑问解答
为什么会有这么多不同的包?
这些带版本后缀(比如.1-9-0、.2-2-0)的包,核心原因是版本兼容性匹配:
- SpecRun是SpecFlow的专用测试运行器,而SpecFlow在不同大版本(比如1.9.x、2.2.x、2.3.x)中会有API、配置结构的变更
- 为了保证SpecRun能和对应版本的SpecFlow完美协作,维护方会发布绑定特定SpecFlow版本的集成包,后缀里的数字就是对应的SpecFlow主版本号(把
-换成.就是SpecFlow的版本,比如.2-2-0对应SpecFlow 2.2.0) - 不带版本后缀的
SpecRun.SpecFlow通常是适配当前最新稳定版SpecFlow的包,会随着SpecFlow的更新同步升级
应该选择哪一个?
选择的核心原则是和你项目中使用的SpecFlow版本严格匹配:
- 先查看你项目里已安装的SpecFlow版本(可以在NuGet包管理器的已安装列表里找到,或者看项目文件里的
<PackageReference>节点) - 如果你的SpecFlow版本是
1.9.x,就选SpecRun.SpecFlow.1-9-0 - 如果是
2.2.x,选SpecRun.SpecFlow.2-2-0,以此类推 - 如果你是新项目,打算用最新版的SpecFlow,直接安装不带版本后缀的
SpecRun.SpecFlow即可,它会自动适配当前最新的稳定版SpecFlow
另外要注意:不要混合安装不同版本的这类包,否则很容易出现兼容性错误,比如测试运行失败、配置加载异常等。
内容的提问来源于stack exchange,提问作者faisalk
相关产品推荐
相关产品推荐

