CI 构建错误 Visual Studio .Net 4.6 升级后的测试步骤 - Executor 进程已退出;在 net.pipe 没有端点侦听
CI Build Error with Visual Studio Test step after .Net 4.6 upgrade - Executor process exited; There was no endpoint listening at net.pipe
我刚刚将解决方案中的所有项目升级为指向 .Net 4.6(有一个 Web 应用程序、一些 class 库、一个数据库项目等)。我在 Visual Studio Team Services 中设置了一个 CI 构建(使用新的构建系统,而不是 XAML),它在升级之前构建成功。此构建定义 运行s Debug、Staging 和 Production 构建,构建定义由两个步骤组成:
- Visual Studio 构建
- Visual Studio 测试
在此框架升级之前,一切都构建良好。我在本地升级和构建了所有东西,而且一切都很好。我可以 运行 测试并全面获得绿色。现在,当我检查我的代码时,它启动了 CI 构建,我在 "Visual Studio Test" 步骤(从日志中获取)得到以下 error/s:
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 构建通过所有三个配置,测试步骤仅对调试失败,因为它找不到其他两个配置的任何测试。此外,我的构建 运行 脱离了我站起来充当构建服务器的 Azure VM,当我 运行 CI 使用托管构建控制器构建时,测试步骤通过,因为它找不到要执行的任何测试,但是关于使用 'Isolation mode to run tests...' 的警告仍然在日志中打印出来。
这是一个已知问题吗?有没有其他人在 4.6 升级后或在 VSTS 的其他上下文中遇到过这个问题?
编辑:构建机器上安装了 .Net Framework 4.6 SDK 和目标 pack/s:
我找到了一个暂时有效的解决方法。我修改了 Visual Studio 测试构建步骤的设置,如下所示:
在步骤设置的 Build 选项卡上,展开 "Advanced" 部分,并将 VSTest 版本更改为 "Visual Studio 2013"。
这就是我所需要的。我尝试这样做是因为当我切换到托管构建控制器时我的构建正在运行,这是日志中两者之间的差异之一。这是我唯一改变的东西,它起作用了。我不知道为什么 Visual Studio 2015 VSTest 版本不起作用,但如果我发现任何东西,我会对其进行更多研究并添加...
第一个警告表明测试 运行 在 .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
.
我在将测试项目升级到 4.6.1 后遇到此错误(特别是 VSTest 退出代码)。问题是 packages.config 没有正确更新测试框架运行程序包,将其保留在 .Net 3.5。更新目标框架解决了问题。
安装.Net Framework 3.5 功能后一切正常!请参阅 "cottsay" https://github.com/Microsoft/vsts-tasks/issues/572
的评论
我刚刚将解决方案中的所有项目升级为指向 .Net 4.6(有一个 Web 应用程序、一些 class 库、一个数据库项目等)。我在 Visual Studio Team Services 中设置了一个 CI 构建(使用新的构建系统,而不是 XAML),它在升级之前构建成功。此构建定义 运行s Debug、Staging 和 Production 构建,构建定义由两个步骤组成:
- Visual Studio 构建
- Visual Studio 测试
在此框架升级之前,一切都构建良好。我在本地升级和构建了所有东西,而且一切都很好。我可以 运行 测试并全面获得绿色。现在,当我检查我的代码时,它启动了 CI 构建,我在 "Visual Studio Test" 步骤(从日志中获取)得到以下 error/s:
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 构建通过所有三个配置,测试步骤仅对调试失败,因为它找不到其他两个配置的任何测试。此外,我的构建 运行 脱离了我站起来充当构建服务器的 Azure VM,当我 运行 CI 使用托管构建控制器构建时,测试步骤通过,因为它找不到要执行的任何测试,但是关于使用 'Isolation mode to run tests...' 的警告仍然在日志中打印出来。
这是一个已知问题吗?有没有其他人在 4.6 升级后或在 VSTS 的其他上下文中遇到过这个问题?
编辑:构建机器上安装了 .Net Framework 4.6 SDK 和目标 pack/s:
我找到了一个暂时有效的解决方法。我修改了 Visual Studio 测试构建步骤的设置,如下所示:
在步骤设置的 Build 选项卡上,展开 "Advanced" 部分,并将 VSTest 版本更改为 "Visual Studio 2013"。
这就是我所需要的。我尝试这样做是因为当我切换到托管构建控制器时我的构建正在运行,这是日志中两者之间的差异之一。这是我唯一改变的东西,它起作用了。我不知道为什么 Visual Studio 2015 VSTest 版本不起作用,但如果我发现任何东西,我会对其进行更多研究并添加...
第一个警告表明测试 运行 在 .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
.
我在将测试项目升级到 4.6.1 后遇到此错误(特别是 VSTest 退出代码)。问题是 packages.config 没有正确更新测试框架运行程序包,将其保留在 .Net 3.5。更新目标框架解决了问题。
安装.Net Framework 3.5 功能后一切正常!请参阅 "cottsay" https://github.com/Microsoft/vsts-tasks/issues/572
的评论