Tom*_*Tom 3 nunit mstest devops azure-devops azure-pipelines-yaml
我们正在使用 DevOps 来构建我们的 .net 4.7.2 应用程序。作为其中的一部分,我们正在运行使用 nunit 框架和测试运行器的单元测试。
它已经正常运行了大约 18 个月,但在最后一天刚刚停止工作:(
它使用标准模板来运行测试,如下所示:
- task: VSTest@2
displayName: "Running tests"
inputs:
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\*test*.dll
!**\*TestAdapter.dll
!**\obj\**
searchFolder: '$(System.DefaultWorkingDirectory)'
Run Code Online (Sandbox Code Playgroud)
但是,现在该步骤失败并显示以下日志:
NUnit 适配器 4.2.0.0:测试执行开始运行 D:\a\1\s\Configuration.Tests\bin\Release\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 中的所有测试 NUnit3TestExecutor 使用 Current Discovery 发现 0 个 NUnit 测试用例中的 0 个模式,显式运行 运行 D:\a\1\s\Configuration.Tests\bin\Release\testcentric.engine.metadata.dll 中的所有测试 NUnit3TestExecutor 使用当前发现模式发现 0 个 NUnit 测试用例中的 0 个,显式运行 运行所有测试在 D:\a\1\s\Api.Tests\bin\Release\testcentric.engine.metadata.dll 中,NUnit3TestExecutor 使用当前发现模式发现了 0 个 NUnit 测试用例中的 0 个,显式运行 在 D:\a\1 中运行所有测试\s\CommunicationTests\bin\Release\testcentric.engine.metadata.dll NUnit3TestExecutor 使用当前发现模式发现 0 个 NUnit 测试用例中的 0 个,显式运行 运行 D:\a\1\s\Domain.Tests\bin\ 中的所有测试Release\testcentric.engine.metadata.dll NUnit3TestExecutor 使用当前发现模式发现了 0 个 NUnit 测试用例,显式运行 在 D:\a\1\s\packages\NUnit3TestAdapter.4.2.1\build\net35\testcentric 中运行所有测试.engine.metadata.dll NUnit3TestExecutor 使用当前发现模式发现 0 个 NUnit 测试用例中的 0 个,显式运行 NUnit 适配器 4.2.0.0:测试执行完成 D:\a\1\s\Configuration.Tests\bin\ 中没有可用的测试Release\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll D:\a\1\s\Configuration.Tests\bin\Release\testcentric.engine.metadata.dll D:\a\1\s\Api.Tests\bin\ Release\testcentric.engine.metadata.dll D:\a\1\s\CommunicationTests\bin\Release\testcentric.engine.metadata.dll D:\a\1\s\Domain.Tests\bin\Release\testcentric。 engine.metadata.dll D:\a\1\s\packages\NUnit3TestAdapter.4.2.1\build\net35\testcentric.engine.metadata.dll。确保测试发现者和执行者已注册,并且平台和框架版本设置合适,然后重试。##[错误]找不到测试主机结果文件:D:\a_temp\TestResults\VssAdministrator_WIN-FVJ4KUK6IFI_2022-08-18_12_38_44.trx ##[错误]测试运行中止。测试总数:未知 通过:110 总时间:16.7203 秒 Vstest.console.exe 退出,代码为 1。**************** 已完成测试执行 ********* ************ 测试结果文件:D:\a_temp\TestResults\VssAdministrator_WIN-FVJ4KUK6IFI_2022-08-18_12_38_44.trx 创建测试运行:1080 发布测试结果:112 将测试结果发布到测试运行'1080 '。TestResults To Publish 112,测试运行 ID:1080 测试结果发布 112,剩余:0。测试运行 ID:1080 已发布测试结果:112 发布附件:1 执行结果代码 1 非零,检查失败结果已完成 TestExecution 模型.. .##[警告]Vstest 因错误而失败。检查日志是否有失败。可能会有失败的测试。##[错误]错误:进程“D:\a_tasks\VSTest_ef087383-ee5e-42c7-9a53-ab56c98420f9\2.205.0\Modules\DTAExecutionHost.exe”失败,退出代码为 1 ##[错误]Vstest 失败,出现错误。检查日志是否有失败。可能会有失败的测试。
查看此日志,似乎 nunit 测试已成功运行,但它可能正在尝试运行 mstests?当 DevOps 获得更新并破坏工作管道时,这是令人沮丧的。
小智 7
我们也有类似的情况。
单元测试使用 xUnit 运行。
/TestAdapterPath:"D:\a\1\s" 正在开始执行测试,请稍候... 共有 36 个测试文件与指定模式匹配。2.4828
##[错误]找不到测试主机
数据收集器“代码覆盖率”消息:没有可用的代码覆盖率数据。探查器未初始化..2.0273
##[错误]找不到测试主机
数据收集器“代码覆盖率”消息:没有可用的代码覆盖率数据。探查器未初始化..2.3746
##[错误]找不到测试主机
数据收集器“代码覆盖率”消息:没有可用的代码覆盖率数据。探查器未初始化..1.992
##[错误]找不到测试主机
数据收集器“代码覆盖率”消息:没有可用的代码覆盖率数据。Profiler 未初始化.. 4.8409 ##[错误]找不到测试主机
数据收集器“代码覆盖率”消息:没有可用的代码覆盖率数据。Profiler 未初始化.. 2.1874 ##[错误]找不到测试主机
我比较了成功运行和失败运行的输出,发现测试平台的版本不同。如果您不指定版本,则默认版本将是最新版本,并且可能是预览版。所以我在 YAML 中添加一些内容来指定一个可行的版本。
- task: VisualStudioTestPlatformInstaller@1
inputs:
versionSelector: 'SpecificVersion'
testPlatformVersion: '17.2.0'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
codeCoverageEnabled: True
vsTestVersion: 'toolsInstaller'
Run Code Online (Sandbox Code Playgroud)
https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/test/vstest?view=azure-devops https://learn.microsoft.com/en-us/azure/devops/pipelines /tasks/tool/vstest-platform-tool-installer?view=azure-devops
| 归档时间: |
|
| 查看次数: |
2343 次 |
| 最近记录: |