【发布时间】:2017-05-26 18:54:06
【问题描述】:
我搜索并找到了类似的问题,但给出的答案对我不起作用。
这是特定于 .NET Core 的。我正在用 Xunit 和 Moq 编写单元测试,我得到了
的错误抛出异常:'System.IO.FileNotFoundException'
附加信息:无法加载文件或程序集 'System.Net.Http,版本=4.1.1.0,文化=中性, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。这 系统找不到指定的文件。
我的测试项目的 project.json 文件如下所示:
{
"version": "1.0.0",
"buildOptions": {
"debugType": "portable"
},
"dependencies": {
"xunit": "2.2.0-beta2-build3300",
"dotnet-test-xunit": "2.2.0-preview2-build1029",
"My.App.DataAccess": "1.0.0",
"My.App.Domain": "1.0.0",
"My.App.Services": "1.0.0",
"My.App.WebApi": "1.0.0",
"Microsoft.AspNetCore.TestHost": "1.1.0",
"Moq": "4.5.30"
},
"testRunner": "xunit",
"frameworks": {
"net462": {}
}
}
只有单元测试失败。主应用程序工作得很好。我尝试手动强制 System.Net 进入 project.json,但它坚持安装 4.3.0。我不确定它在哪里认为它需要 4.1.1.0。
编辑:我注意到如果我将 System.Net.Http.dll 从 WebApi 项目 bin 复制到 Test 项目 bin,一切正常。现在,测试项目本身不使用 System.Net.Http 命名空间中的任何内容——只有 WebApi 项目中正在测试的方法引用它。
Test 项目是否也应该将 System.Net.Http.dll 复制到它的 bin 文件夹中?如果是这样,为什么在构建过程中没有发生这种情况?
【问题讨论】:
-
在包还原过程中是否收到任何警告?
-
不。一切看起来都很笨拙。
-
您可以按照question 中的说明检查程序集绑定日志,以了解您的应用为何需要此特定版本
标签: unit-testing asp.net-core moq xunit