Azure Pipeline Google 测试不是 运行 作为 .EXE
Azure Pipeline Google Tests not running as .EXE
我正在将传统的 C++ 代码库构建过渡到 Azure DevOps 管道。我们在一个模块中有一堆 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.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 Studio19\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\s\x64\Release\sdktests.exe"
/Settings:"d:\a\_temp\ktasri4fewz.tmp.runsettings"
/Logger:"trx"
/TestAdapterPath:"d:\a\s"
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
No test is available in d:\a\s\x64\Release\sdktests.exe. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
@乔,
我以前 运行 遇到过类似的情况。这是我发现的。如果你正在 运行ning GTest,你应该像往常一样 运行ning,不需要我们的 VSTest 任务。 GTest 生成的测试结果文件是 JUnit 格式的 XML 文件。您可以使用发布测试结果 v2 任务发布到构建。设置看起来像:
- 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'
您应该使用以下参考来创建满足您需求的解决方案:
我正在将传统的 C++ 代码库构建过渡到 Azure DevOps 管道。我们在一个模块中有一堆 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.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 Studio19\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\s\x64\Release\sdktests.exe"
/Settings:"d:\a\_temp\ktasri4fewz.tmp.runsettings"
/Logger:"trx"
/TestAdapterPath:"d:\a\s"
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
No test is available in d:\a\s\x64\Release\sdktests.exe. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
@乔,
我以前 运行 遇到过类似的情况。这是我发现的。如果你正在 运行ning GTest,你应该像往常一样 运行ning,不需要我们的 VSTest 任务。 GTest 生成的测试结果文件是 JUnit 格式的 XML 文件。您可以使用发布测试结果 v2 任务发布到构建。设置看起来像:
- 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'
您应该使用以下参考来创建满足您需求的解决方案: