dotnet vstest

本文适用于:✔️ .NET 6 SDK 及更高版本

重要

命令 dotnet vstest 被取代 dotnet test,该命令现在可用于运行程序集。 请参阅 dotnet 测试

Name

dotnet vstest - 从指定的程序集运行测试。

概要

dotnet vstest [<TEST_FILE_NAMES>] [--Blame] [--Diag <PATH_TO_LOG_FILE>]
    [--Framework <FRAMEWORK>] [--InIsolation] [-lt|--ListTests <FILE_NAME>]
    [--logger <LOGGER_URI/FRIENDLY_NAME>] [--Parallel]
    [--ParentProcessId <PROCESS_ID>] [--Platform] <PLATFORM_TYPE>
    [--Port <PORT>] [--ResultsDirectory<PATH>] [--Settings <SETTINGS_FILE>]
    [--TestAdapterPath <PATH>] [--TestCaseFilter <EXPRESSION>]
    [--Tests <TEST_NAMES>] [[--] <args>...]

dotnet vstest -?|--Help

Description

dotnet vstest 命令运行 VSTest.Console 命令行应用程序以运行自动化单元测试。

Arguments

  • TEST_FILE_NAMES

    从指定的程序集运行测试。 使用空格分隔多个测试程序集名称。 支持通配符。

选项

  • --Blame

    在意见模式中运行测试。 此选项有助于隔离导致测试主机崩溃的问题测试。 它将在当前目录中创建一个输出文件,作为 Sequence.xml 捕获崩溃前的测试执行顺序。

  • --Diag <PATH_TO_LOG_FILE>

    为测试平台启用详细日志。 日志将写入所提供的文件。

  • --Framework <FRAMEWORK>

    用于测试执行的 .NET Framework 版本。 有效值的一个示例是 .NETFramework,Version=v7.0。 其他支持的值是Framework40Framework45FrameworkCore10FrameworkUap10

  • --InIsolation

    在独立进程中运行测试。 这使得 vstest.console.exe 进程不太可能在测试中出错时停止,但测试可能会运行较慢。

  • -lt|--ListTests <FILE_NAME>

    列出给定测试容器中发现的所有测试。

  • --logger <LOGGER_URI/FRIENDLY_NAME>

    指定测试结果的记录器。

    • 若要将测试结果发布到 Team Foundation Server,请使用 TfsPublisher 记录器提供程序:

      /logger:TfsPublisher;
          Collection=<team project collection url>;
          BuildName=<build name>;
          TeamProject=<team project name>
          [;Platform=<Defaults to "Any CPU">]
          [;Flavor=<Defaults to "Debug">]
          [;RunTitle=<title>]
      
    • 若要将结果记录到 Visual Studio 测试结果文件(TRX),请使用 trx 记录器提供程序。 此开关在具有给定日志文件名称的测试结果目录中创建一个文件。 如果未 LogFileName 提供,则会创建唯一的文件名来保存测试结果。

      /logger:trx [;LogFileName=<Defaults to unique file name>]
      
  • --Parallel

    并行运行测试。 默认情况下,计算机上的所有可用核心都可供使用。 通过在 runsettings 文件中的MaxCpuCount节点下RunConfiguration设置属性来指定显式核心数。

  • --ParentProcessId <PROCESS_ID>

    负责启动当前进程的父进程的进程 ID。

  • --Platform <PLATFORM_TYPE>

    用于测试执行的目标平台体系结构。 有效值为:x86x64ARM

  • --Port <PORT>

    指定套接字连接的端口并接收事件消息。

  • --ResultsDirectory:<PATH>

    如果不存在,将在指定路径中创建测试结果目录。

  • --Settings <SETTINGS_FILE>

    运行测试时要使用的设置。

  • --TestAdapterPath <PATH>

    在测试运行中使用给定路径(如果有)中的自定义测试适配器。

  • --TestCaseFilter <EXPRESSION>

    运行与给定表达式匹配的测试。 <EXPRESSION> 是格式 <property>Operator<value>[|&<EXPRESSION>],其中运算符是其中 =之一, !=~。 运算符 ~ 具有“contains”语义,适用于字符串属性,例如 DisplayName。 括号 () 用于对子表达式进行分组。 有关详细信息,请参阅 TestCase 筛选器

  • --Tests <TEST_NAMES>

    使用与提供的值匹配的名称运行测试。 使用逗号分隔多个值。

  • -?|--Help

    输出命令的简短帮助。

  • @<file>

    读取响应文件以获取更多选项。

  • args

    指定要传递到适配器的额外参数。 参数指定为窗体 <n>=<v>的名称/值对,其中 <n> 参数名称是参数值,也是 <v> 参数值。 使用空格分隔多个参数。

例子

mytestproject.dll中运行测试:

dotnet vstest mytestproject.dll

mytestproject.dll中运行测试,导出为具有自定义名称的自定义文件夹:

dotnet vstest mytestproject.dll --logger:"trx;LogFileName=custom_file_name.trx" --ResultsDirectory:custom/file/path

mytestproject.dllmyothertestproject.exe中运行测试:

dotnet vstest mytestproject.dll myothertestproject.exe

运行 TestMethod1 测试:

dotnet vstest /Tests:TestMethod1

运行 TestMethod1TestMethod2 测试:

dotnet vstest /Tests:TestMethod1,TestMethod2

另请参阅