尝试在构建管道中运行UWP单元测试或使用vstest

时间:2018-10-24 14:30:43

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

我们有一个带有单元测试的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)Microsoft Corporation。保留所有权利。

     

开始执行测试,请稍候...正在尝试部署到目标   “本地计算机”。部署操作成功,包别名:   '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 --telemetryopted in false'。 DEP7100:无法激活应用   '7d25c824-2568-4449-a622-ad28662417f9_a178p9x51fw8a!vstest.executionengine.universal.App',其参数为'--port 1428 --endpoint 127.0.0.1:01428 --role client   --parentprocessid 5744 --telemetryopted in 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>。构建代理是一台本地Windows 10计算机,我们用于UWP构建已有一段时间。这是Azure DevOps中我们的构建配置的屏幕截图:

Build configuration in DevOps

2 个答案:

答案 0 :(得分:0)

如果在构建代理程序上未启用开发人员模式,则可能会看到此错误。

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

答案 1 :(得分:0)

我今天遇到了这个问题,并最终追溯到我们的自托管Azure DevOps代理的运行方式-要运行UWP单元测试,您必须对代理使用交互模式,而不能< / strong>作为Windows服务运行。从docs

  

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

     

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

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