【问题标题】:"Failed to activate app" when trying to run UWP unit tests as part of a build pipeline or using vstest尝试运行UWP单元测试时,“无法激活应用程序”作为构建管道的一部分或使用vstest
【发布时间】:2019-03-29 00:31:36
【问题描述】:

我们有一个带有单元测试的 UWP 应用,可以在 Visual Studio 中正常运行。但是,当我们尝试在我们的构建代理上运行测试时,我们遇到了问题。为了将问题与我们的构建管道隔离开来,我们尝试在本地构建机器上的命令行中使用vstest.console.exe 运行测试。无论我们是从构建管道还是从命令行运行,下面的错误都是相同的。我们将不胜感激。

TestWindow>vstest.console.exe /Platform:x86 /Framework:FrameworkUap10 /InIsolation /logger:trx;LogFileName=%temp%\SampleUwpAppTest.trx C:\vsts-agent_work\22\a\AppxPackages\SimpleUwpApp.Tests_1.0.0.0_x86_Test\SimpleUwpApp.Tests_1.0.0.0_x86.appx Microsoft (R) 测试执行命令行工具版本 15.7.2 版权所有 (c) 微软公司。保留所有权利。

开始测试执行,请稍候...正在尝试部署到目标 '本地机器'。部署操作成功,包名字: '7d25c824-2568-4449-a622-ad28662417f9_1.0.0.0_x86__a178p9x51fw8a'。 尝试使用应用程序用户模型 ID 启动应用程序 '7d25c824-2568-4449-a622-ad28662417f9_a178p9x51fw8a!vstest.executionengine.universal.App' 和参数 '--port 1428 --endpoint 127.0.0.1:01428 --role client --parentprocessid 5744 --telemetryoptedin false'。 DEP7100:无法激活应用 '7d25c824-2568-4449-a622-ad28662417f9_a178p9x51fw8a!vstest.executionengine.universal.App' 带有参数'--port 1428 --endpoint 127.0.0.1:01428 --role client --parentprocessid 5744 --telemetryoptedin false'。访问被拒绝。

访问被拒绝。

应用激活失败。 Microsoft.VisualStudio.TestPlatform.ObjectModel.TestPlatformException: 初始化客户端代理失败:无法连接到测试进程。 在 Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyOperationManager.SetupChannel(IEnumerable`1 来源)在 Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyExecutionManager.StartTestRun(TestRunCriteria testRunCriteria, ITestRunEventsHandler eventHandler) 关闭应用程序 包全名 '7d25c824-2568-4449-a622-ad28662417f9_1.0.0.0_x86__a178p9x51fw8a'。

测试运行中止。

构建信息

我们的示例解决方案有两个项目:SimpleUwpApp 和 SimpleUwpApp.Tests。前者的项目文件有<AppxBundle>Always</AppxBundle>,后者有<AppxBundle>Never</AppxBundle>。构建代理是我们用于 UWP 构建一段时间的本地 Windows 10 机器。这是我们在 Azure DevOps 中构建配置的屏幕截图:

【问题讨论】:

  • 您使用什么构建代理?我假设 Microsoft 托管代理是 Windows Server,docs.microsoft.com/en-us/azure/devops/pipelines/agents/…,它不能运行 UWP 应用程序。您可以改为在 Windows 10 机器上构建自己的代理。
  • @LexLi,我们正在使用我们自己的本地 Windows 10 机器,正如this article 所说,这是运行 UWP 单元测试所必需的。

标签: unit-testing uwp msbuild azure-devops vstest


【解决方案1】:

如果未在构建代理上启用开发者模式,您可能会看到此错误。

You can enable developer mode in the Settings app, or set the AllowDevelopmentWithoutDevLicense registry key.

【讨论】:

    【解决方案2】:

    我今天遇到了这个问题,并最终追踪到我们的自托管 Azure DevOps 代理的运行方式 - 为了运行 UWP 单元测试,您必须为代理使用交互模式,不 将其作为 Windows 服务运行。来自docs

    使用自托管 Windows 代理的可见 UI 测试

    配置为作为服务运行的代理只能使用无头浏览器运行 Selenium 测试。如果您没有使用无头浏览器,或者您正在为桌面应用程序运行 UI 测试,则 Windows 代理必须配置为作为启用自动登录的交互式进程运行。

    进行此更改后,我发现错误消失了。

    【讨论】:

      猜你喜欢
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多