Azure Конвейерные тесты Google не работают как .EXE - PullRequest
0 голосов
/ 14 июля 2020

Я перехожу с традиционной сборки кода C ++ на Azure DevOps Pipeline. У нас есть набор модульных тестов gtest в модуле, который представляет собой просто исполняемый файл с именем «sdktests.exe». Он ссылается на gtest 1.8.1. Пользователь всегда просто запускал этот exe вручную и наблюдал за результатами.

Но я не могу заставить его Azure Devops обнаруживать и запускать эти тесты. Я предполагаю, что ему нужны тесты в виде загружаемой DLL вместо EXE

Так ли это? Нужно ли мне преобразовывать мой модуль тестов Google из EXE в DLL, чтобы это работало?

Это мой шаг конвейера yaml

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    testSelector: 'testAssemblies'
    testAssemblyVer2: '**\*sdktests*.exe'

Это мой Azure построить вывод для шага:

Source filter: **\*sdktests*.exe
SystemVssConnection exists true
d:\a\_tasks\VSTest_ef087383-ee5e-42c7-9a53-ab56c98420f9\2.170.1\Modules\DTAExecutionHost.exe --inputFile d:\a\_temp\input_484b64d0-c544-11ea-bc95-251e50750ee7.json
======================================================
##########################################################################
DtaExecutionHost version 18.170.30112.1.
Starting TestExecution Model...
Result Attachments will be stored in LogStore
Run Attachments will be stored in LogStore
Result Attachments will be stored in LogStore
Result Attachments will be stored in LogStore
Run Attachments will be stored in LogStore
Updated Run Settings:
<RunSettings>
  <RunConfiguration>
    <BatchSize>1000</BatchSize>
    <ResultsDirectory>d:\a\_temp\TestResults</ResultsDirectory>
  </RunConfiguration>
</RunSettings>
**************** Starting test execution *********************
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Extensions\TestPlatform\vstest.console.exe "@d:\a\_temp\jcgckxlo13t.tmp"
Microsoft (R) Test Execution Command Line Tool Version 16.6.0
Copyright (c) Microsoft Corporation.  All rights reserved.
vstest.console.exe "d:\a\1\s\x64\Release\sdktests.exe"
/Settings:"d:\a\_temp\ktasri4fewz.tmp.runsettings"
/Logger:"trx"
/TestAdapterPath:"d:\a\1\s"
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
No test is available in d:\a\1\s\x64\Release\sdktests.exe. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.

1 Ответ

1 голос
/ 14 июля 2020

@ Joe,

Я уже сталкивался с подобной ситуацией в прошлом. Вот что я нашел. Если вы используете GTest, вы должны работать как обычно, нам не нужна задача VSTest. Файл результатов теста, созданный GTest, находится в формате XML JUnit. Вы можете использовать задачу publi sh test results v2, чтобы опубликовать sh в сборке. Настройка будет выглядеть примерно так:

- task: CmdLine@1
  displayName: Run Unit Tests (GTest)
  inputs:
    script: 'sdktests.exe'

- task: PublishTestResults@2
  displayName: Publish Unit Test Results (GTest)
  inputs:
    testResultsFiles: '**/SDKTestResults.xml'
    testRunTitle: 'GTest Results'

Вот ссылки, которые вы должны использовать для создания решения, отвечающего вашим потребностям:

...