我可以在Windows自托管代理和Azure管道上运行Xamarin UITests吗?

时间:2020-06-03 12:26:33

标签: xamarin.forms azure-devops xamarin.uitest azure-devops-self-hosted-agent

我很难在文档中找到是否可以在自托管Windows代理和Azure DevOps构建管道上运行Xamarin UITests。

谢谢

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

这是我尝试做的事情,它仍在进行中。现在,当自托管代理从获得Device unauthorized的脚本启动仿真器时会遇到问题,但是如果我手动启动仿真器而不使用脚本任务管道,则UITest将在设备上执行,因此我成功了。

我结束时所做的事情:

  1. 我为Visual Studio安装了Xamarin Build Tools

  2. 安装了一个Android模拟器,并将emulator.exe添加到了我的Path environment variable.

  3. 编写PowerShell脚本以在构建管道的开头启动模拟器。

构建管道任务:

 - task: PowerShell@2
   displayName: 'Run Android Emulator'
   inputs:
     filePath: './run_emulator.ps1'
     arguments: '-ExecutionPolicy Unrestricted'

run_emulator.ps1脚本:

Start-Process -FilePath "emulator" -ArgumentList  "-avd pixel_2_pie_9_0_-_api_28"

4.使用以下构建管道任务为我的应用构建Apk:
 - task: XamarinAndroid@1
   inputs:
     projectFile: '.\tests\TestApp\TestApp.Android\TestApp.Android.csproj'
     msbuildArguments: '/t:restore'
     jdkOption: 'JDKVersion'
  1. 使用VSTest@2运行UITest:
 - task: VSTest@2
  displayName: 'Running UITests for Xamarin'
   inputs:
     testSelector: 'testAssemblies'
     testAssemblyVer2: |
       **\*TestApp.UITests.dll
       !*testhost.dll 
       !**\*testhost.dll
       !**\obj\**
       !**\xunit.runner.visualstudio.testadapter.dll
       !**\xunit.runner.visualstudio.dotnetcore.testadapter.dll
       !**\NUnit3.TestAdapter.dll
       !**\Xamarin.UITest.dll
     searchFolder: './tests/TestApp/'
     platform: '$(buildPlatform)'
     configuration: '$(configuration)'

我认为这可能有助于尝试完成与我相同的事情的人。