Я пытаюсь запустить мой тестовый проект UWP в моем конвейере devops.
Если я задаю для конфигурации сборки значение Debug: я получаю ошибку No test sources found matching the given filter '**\Release\Test.build.appxrecipe
Если я установите конфигурацию сборки на Release: тесты найдены и запущены, но все мои тесты, которые используют Moq (большинство из них), терпят неудачу с: System.PlatformNotSupportedException: Dynamic code generation is not supported on this platform..
Вот мой yaml:
- job: Testing
variables:
solution: '**/*.sln'
buildPlatform: 'x86|x64'
buildConfiguration: 'Debug'
appxPackageDir: '$(build.artifactStagingDirectory)\AppxPackages\\'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'select'
vstsFeed: '--------------------------------------'
- task: VSBuild@1
inputs:
platform: 'x86'
solution: '$(solution)'
configuration: '$(buildConfiguration)'
msbuildArgs: /p:AppxBundlePlatforms="$(buildPlatform)"
/p:AppxPackageDir="$(appxPackageDir)"
/p:AppxBundle=Always
/p:UapAppxPackageBuildMode=StoreUpload
- task: VSTest@2
inputs:
platform: 'x86|x64'
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\Release\Test.build.appxrecipe
!**\*TestAdapter.dll
!**\obj\**
searchFolder: '$(System.DefaultWorkingDirectory)'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop_test'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
artifactName: drop_test
Я знаю, что один из вариантов - go пройти через все мои тесты и заменить Moq какой-либо другой платформой тестирования, которая делает все во время компиляции ... но я ленив и действительно не хочу этого делать.
Я бы предпочел, чтобы это работало с конфигурацией отладочной сборки, чтобы я мог использовать свои существующие тесты.