4

我刚刚升级了解决方案中的所有项目以指向 .Net 4.6(有一个 Web 应用程序、一些类库、一个数据库项目等)。我在 Visual Studio Team Services 中设置了一个 CI 构建(使用新的构建系统,而不是 XAML),它在升级之前已成功构建。此构建定义运行调试、暂存和生产构建,构建定义由两个步骤组成:

  • Visual Studio 构建
  • Visual Studio 测试

在此框架升级之前,一切都很好。我在本地升级并构建了所有东西,而且一切都很好。我可以运行测试并全面获得绿色。现在,当我检查其中的代码时,它启动了 CI 构建,并且在“Visual Studio 测试”步骤(取自日志)中出现以下错误:

2015-09-18T19:08:02.1212067Z Microsoft (R) Test Execution Command Line Tool Version 14.0.23107.0
2015-09-18T19:08:02.1489666Z Copyright (c) Microsoft Corporation.  All rights reserved.
2015-09-18T19:08:02.8906952Z Starting test execution, please wait...
2015-09-18T19:08:03.3713251Z Warning: Using Isolation mode to run tests as required by effective Platform:X86 and .Net Framework:Framework35 settings for test run. Use the /inIsolation parameter to suppress this warning.
2015-09-18T19:08:07.4457804Z ##[error]Error: Executor process exited.
2015-09-18T19:08:07.4457804Z ##[error]
2015-09-18T19:08:07.4557251Z ##[error]Error: There was no endpoint listening at net.pipe:[...redacted...] that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
2015-09-18T19:08:07.4557251Z ##[error]
2015-09-18T19:08:07.7730938Z ##[error]VSTest Test Run failed with exit code: 1
2015-09-18T19:08:07.8043435Z ##[warning]No results found to publish.

Visual Studio Build 对所有三种配置都通过了,而测试步骤仅对 Debug 失败,因为它找不到其他两种配置的任何测试。此外,我的构建是在我站起来充当构建服务器的 Azure VM 上运行的,当我使用托管构建控制器运行 CI 构建时,测试步骤通过了,因为它找不到任何要执行的测试,但是关于使用“隔离模式运行测试...”的警告仍然打印在日志中。

这是一个已知的问题?在 4.6 升级后或在 VSTS 的其他上下文中是否有其他人遇到过这种情况?

编辑:构建机器上安装了 .Net Framework 4.6 SDK 和目标包/s: 来自构建服务器上的“程序和功能”

4

4 回答 4

13

第一个警告表明测试正在 .NET 3.5 上运行:Warning: ... effective Platform:X86 and .Net Framework:Framework35 ...

所以我明确地将vstest.console框架版本设置为 4.5。(此时 4.6 不是可用选项)。这为我解决了这些症状。

为此,请编辑Visual Studio 测试构建步骤。在步骤设置的Build选项卡上,展开Advanced部分,然后将Other console options设置为/Framework:Framework45

其他控制台选项:/Framework:Framework45

于 2015-09-28T19:05:56.870 回答
2

我暂时找到了一个暂时有效的解决方法。我修改了 Visual Studio 测试构建步骤的设置,如下所示:

在步骤设置的Build选项卡上,展开“Advanced”部分,并将 VSTest 版本更改为“Visual Studio 2013”​​。

这就是我所需要的。我尝试了这个,因为当我切换到托管构建控制器时我的构建正在工作,这是日志中两者之间的差异之一。这是我唯一改变的东西,它起作用了。我不知道为什么 Visual Studio 2015 VSTest 版本不起作用,但如果我发现任何东西,我会对其进行更多研究并添加...

于 2015-09-21T16:18:38.267 回答
0

在将测试项目升级到 4.6.1 后,我遇到了这个错误(特别是 VSTest 退出代码)。问题是 packages.config 没有正确更新测试框架运行程序 pacakge 将其留在 .Net 3.5。更新目标框架解决了这个问题。

于 2016-07-03T23:30:15.340 回答
0

安装 .Net Framework 3.5 功能后一切正常!请参阅https://github.com/Microsoft/vsts-tasks/issues/572上的“cottsay”评论

于 2016-11-07T11:06:04.420 回答