【问题标题】:dotnet.exe test command file reference fails MSTestdotnet.exe 测试命令文件引用失败 MSTest
【发布时间】: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 上遇到错误。我已经更新了项目以反映这一点。以下是我的构建定义:

  1. .NET Core - 恢复
    • 项目:**/project.json
  2. .NET Core - 构建
    • 项目:**/project.json
  3. .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


【解决方案1】:

我在我身边重现了您的问题,您现在可以使用“命令行”任务作为解决方法:

【讨论】:

  • @starain-MSFT 你能发布你所做的吗,因为这似乎对我不起作用并且在从 Visual Studio 运行时破坏了测试。原始错误 System.Exception:无法加载程序集或类型。 A:C:\Program Files (x86)\Mic rosoft Visual Studio 14.0\Support\ImplAssembly.dll,T:ImplAssembly.TestReference。错误:系统找不到指定的路径。新错误:System.Exception:无法加载程序集或类型。答:C:\Support\ImplAssembly.dll,T:ImplAssembly.TestReference。错误:系统找不到指定的路径。
  • @JShewchuk 我刚刚下载了您提供的示例并将其上传到我的 VSTS 项目,然后创建了构建定义。我选择了“ASP.NET Core (PREVIEW)”模板。
  • 我一定错过了一些我忽略的基本问题,因为我在本地没有遇到这个问题
  • @JShewchuk 我刚刚在我身边重现了您的问题,但尚未找出根本原因。目前,您可以使用命令行任务作为解决方法。我在回答中添加了截图供您参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
相关资源
最近更新 更多