我很难在文档中找到是否可以在自托管Windows代理和Azure DevOps构建管道上运行Xamarin UITests。
谢谢
答案 0 :(得分:1)
我认为您可以使用appcenter测试任务,您的代理程序上将需要有节点10。
https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/test/app-center-test?view=azure-devops
https://docs.microsoft.com/en-us/appcenter/test-cloud/vsts-plugin
测试完成后,您需要发布测试结果任务,将其指向结果的xml。
答案 1 :(得分:0)
这是我尝试做的事情,它仍在进行中。现在,当自托管代理从获得Device unauthorized
的脚本启动仿真器时会遇到问题,但是如果我手动启动仿真器而不使用脚本任务管道,则UITest将在设备上执行,因此我成功了。
我结束时所做的事情:
我为Visual Studio安装了Xamarin Build Tools
安装了一个Android模拟器,并将emulator.exe
添加到了我的Path environment variable.
编写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"
- task: XamarinAndroid@1
inputs:
projectFile: '.\tests\TestApp\TestApp.Android\TestApp.Android.csproj'
msbuildArguments: '/t:restore'
jdkOption: 'JDKVersion'
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)'
我认为这可能有助于尝试完成与我相同的事情的人。