【发布时间】:2017-02-23 17:27:18
【问题描述】:
我有一个 ASP.NET Core Web API / .NET Core 应用程序正在运行,它在本地和其他开发人员机器上构建和执行测试。它在 Docker 中也运行良好(我们在构建 docker 之前构建/测试应用程序)。我们正在尝试使用 Visual Studio Team Services 自动化我们的构建,并且解决方案构建良好,它是在 VSTS 上执行测试时出现问题。应用程序在运行时加载它从配置文件中读取的程序集,因此当应用程序尝试加载程序集时,它会抛出一个异常(如下),表示找不到它。配置文件中的值是相对路径。任何明显我遗漏的东西
System.Exception with message "Unable to load assembly or type. A: R:\agent\_work\4\s\Support\<assemblyname>, T: <TypeName>. Error: The system cannot find the path specified. (Exception from HRESULT: 0x80070003)
当应用程序从 Visual Studio 运行时,它运行良好。当我运行以下命令时,我可以重新创建我们在 VSTS 上遇到的错误。
"C:\Program Files\dotnet\dotnet.exe" test <Project Directory>/project.json --configuration release
任何帮助确定引用这些文件的正确方法将不胜感激。
- 开发环境:Visual Studio 2015 Update 3
- 测试框架:mstest
- “MSTest.TestFramework”:“1.0.4-preview”
- "dotnet-test-mstest": "1.1.1-preview"
更新 2/22/17 我仍然无法从 VSTS 运行构建。当我从测试项目文件夹中的命令行运行命令“dotnet.exe test”时,我能够运行这些项目。
当我更改路径以排除“。”时,我仍然在本地和 VSTS 上遇到错误。我已经更新了项目以反映这一点。以下是我的构建定义:
- .NET Core - 恢复
- 项目:**/project.json
- .NET Core - 构建
- 项目:**/project.json
- .NET Core - 测试
- 项目:test/HostConsoleAppTest/project.json(我也用了相对路径)
VSTS 错误:
2017-02-22T17:32:01.3057263Z 无法加载程序集或类型。答:D:\a\1\s\Support\ImplAssembly.dll,T:ImplAssembly.TestReference。错误:系统找不到指定的路径。 (来自 HRESULT 的异常:0x80070003) 运行不带点的引用
2017-02-22T17:32:01.3057263Z 获取配置
2017-02-22T17:32:01.3057263Z 通过程序集创建实现
2017-02-22T17:32:01.3057263Z 无法加载程序集或类型。答:D:\Support\ImplAssembly.dll,T:ImplAssembly.TestReference。错误:系统找不到指定的路径。 (HRESULT 异常:0x80070003)
Git 仓库已更新
【问题讨论】:
-
我无法重现此问题。 (步骤:1.创建一个.Net Core Web API,2.添加“MSTest.TestFramework”:“1.0.4-preview”和“dotnet-test-mstest”:“1.1.1-preview” 3.添加“testRunner ": "mstest" 到 project.json。)您可以尝试使用 project.json 和 /UseVsixExtensions:true /logger:trx 参数通过 Visual Studio 测试步骤运行测试。 blogs.msdn.microsoft.com/visualstudioalm/2016/09/01/…你能分享一个可以在 OneDrive 上产生该问题的简单项目吗?另外,请提供详细的构建日志。
-
非常感谢您的帮助。我已将示例项目添加到 git:github.com/JShewchuk/TestCommandReferenceTest 命令输出在 readme.md 文件中。另请注意,此错误与我们在 VSTS 上看到的相同。谢谢
标签: visual-studio-2015 .net-core mstest azure-pipelines asp.net-core-webapi