c# - Asp mvc 5 集成测试 SpecsFor.Mvc
问题描述
我对 SpecsFor.Mvc 有疑问
我正在尝试运行主机服务器:
public static SpecsForIntegrationHost _host;
public void SetupTestRun()
{
string msBuild = ToolLocationHelper.GetPathToBuildToolsFile("msbuild.exe", "16.0");
var config = new SpecsForMvcConfig();
config.UseIISExpress()
.With(Project.Named("WeatherApp.FrontEnd"))
.UseMSBuildExecutableAt(msBuild);
config.BuildRoutesUsing(r => RouteConfig.RegisterRoutes(r));
config.UseBrowser(BrowserDriver.InternetExplorer);
_host = new SpecsForIntegrationHost(config);
_host.Start();
}
但我收到了这个错误:
System.IO.FileLoadException:'无法加载文件或程序集'System.Web.Mvc,版本 = 5.2.4.0,文化 = 中性,PublicKeyToken = 31bf3856ad364e35' r 它的依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)'
我该如何解决?或者还有其他类似的集成测试框架吗?
解决方案
听起来您的规范项目正在引用一个版本的 ASP.NET MVC,而您的实际 Web 应用程序正在引用另一个版本。如果您使用的是 Visual Studio,则可以右键单击解决方案并选择“管理 NuGet 包”,然后转到“合并”选项卡。当您使用它时,确保两个项目一开始都运行最新版本的 ASP.NET MVC,并且您在两个项目上都有适当的绑定重定向以确保所有内容都转发到正确的MVC 版本。
我希望这会有所帮助!
推荐阅读
- python - 将大熊猫数据帧发送到 SQL 数据库的最佳方法?
- ssl - Ktor 1.3.0-beta-1 multiplatform - 在 kotlin 中用于 iOS 的 SSL 固定
- c# - ERROR_ALREADY_EXISTS 的 C# 互斥锁等价物
- javascript - 倒计时结束后如何停止倒计时计时器刷新
- php - 使用父类别搜索子类别
- ios - 在 Xcode 中使用 SQLite 绑定错误
- azure-devops - 从逻辑应用向 Azure DevOps 进行身份验证
- javascript - 为什么 webpack 加载多个 app.js 文件而不是单个 app js 文件
- php - PHP在字符串参数中使用“字符
- javascript - 渲染 2 个函数(学习最佳实践)