首页 > 解决方案 > 与 minimumExpectedTests 等效的 dotnet 测试

问题描述

我目前希望将管道中的一个步骤从使用 VSTest@2 改为使用 dotnet 测试。我读过您可以使用 .runsettings 文件配置 dotnet 测试。但是,VSTest@2 中似乎有可用的设置,我无法找到 dotnet 测试的相应设置。

其中之一是 minimumExpectedTests 如果低于给定数量的测试,它将失败该步骤。这可以通过 dotnet 测试来完成吗?

# Existing step
- task: VSTest@2
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: bin\Release\**\Foo.*.Tests.dll
    searchFolder: '$(System.DefaultWorkingDirectory)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    # Should fail if 500 tests are not run
    failOnMinTestsNotRun: true
    minimumExpectedTests: '500'

# New step
- task: DotNetCoreCLI@2
  inputs:
    command: 'test'
    projects: **\bin\Release\**\Foo.*.Tests.dll
    publishTestResults: false
    arguments: '--v normal -s test.runsettings'
    testRunTitle: 'Run Tests'

标签: .netnunitazure-pipelines

解决方案


据我所知,目前只有vstest@2支持 vstest 的一些参数。(例如 minimumExpectedTests、uiTests)。

对于 Dotnet 测试,arguments 支持以下参数

dotnet test [<PROJECT> | <SOLUTION> | <DIRECTORY> | <DLL>]
    [-a|--test-adapter-path <PATH_TO_ADAPTER>] [--blame]
    [-c|--configuration <CONFIGURATION>]
    [--collect <DATA_COLLECTOR_FRIENDLY_NAME>]
    [-d|--diag <PATH_TO_DIAGNOSTICS_FILE>] [-f|--framework <FRAMEWORK>]
    [--filter <EXPRESSION>] [--interactive]
    [-l|--logger <LOGGER_URI/FRIENDLY_NAME>] [--no-build]
    [--nologo] [--no-restore] [-o|--output <OUTPUT_DIRECTORY>]
    [-r|--results-directory <PATH>] [--runtime <RUNTIME_IDENTIFIER>]
    [-s|--settings <SETTINGS_FILE>] [-t|--list-tests]
    [-v|--verbosity <LEVEL>] [[--] <RunSettings arguments>]

dotnet test -h|--help

您可以添加这些参数以增加 dotnet test 的功能。

但此任务不支持某些 Vstest@2 参数。似乎没有解决方法可以满足您的需求。

这个功能确实很有意义。您可以在我们的 UserVoice 网站上提交有关此功能的建议票。

在此处输入图像描述


推荐阅读