Поделиться через


Использование Microsoft.Testing.Platform с dotnet test

В этой статье описывается, как выполнять dotnet test тесты при использовании Microsoft.Testing.Platform, а также различные параметры, доступные для настройки выходных данных MSBuild, созданных при выполнении тестов с помощью Microsoft.Testing.Platform.

В этой статье показано, как выполнять dotnet test все тесты в решении (*.sln), который использует Microsoft.Testing.Platform.

dotnet test интеграция

Команда dotnet test — это способ выполнения тестов из решений, проектов или уже созданных сборок. Microsoft.Testing.Platform подключается к этой инфраструктуре, чтобы обеспечить единый способ выполнения тестов, особенно при миграции из VSTest в Microsoft.Testing.Platform.

dotnet test интеграция — режим VSTest

Microsoft.Testing.Platformпредоставляет уровень совместимости (VSTest Bridge) для эффективной работыdotnet test.

Тесты можно запустить, выполнив следующие действия:

dotnet test

Этот уровень выполняет тестирование с помощью VSTest и интегрируется с ним на уровне адаптера VSTest Test Framework.

dotnet test — Режим Microsoft.Testing.Platform

По умолчанию VSTest используется для выполнения Microsoft.Testing.Platform тестов. Вы можете включить полный Microsoft.Testing.Platform параметр, указав <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> параметр в файле проекта. Этот параметр отключает VSTest и благодаря транзитивной зависимости к пакету NuGet Microsoft.Testing.Platform.MSBuild напрямую запускает все Microsoft.Testing.Platform расширенные тестовые проекты в решении. Он работает легко, если вы передаете прямой Microsoft.Testing.Platform тестовый проект.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>

    <OutputType>Exe</OutputType>
    <EnableMSTestRunner>true</EnableMSTestRunner>

    <!-- Add this to your project file. -->
    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>

  </PropertyGroup>

  <!-- ... -->

</Project>

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

  • Начиная с версии 1.4 (включенной в Microsoft.Testing.Platform MSTest версии 3.6), можно добавить параметры после двойного дефиса -- в командной строке:

    dotnet test -- --minimum-expected-tests 10
    
  • Используя TestingPlatformCommandLineArguments свойство MSBuild в командной строке:

    dotnet test -p:TestingPlatformCommandLineArguments="--minimum-expected-tests 10"
    

    Или в файле проекта:

    <PropertyGroup>
      ...
      <TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments>
    </PropertyGroup>
    

Дополнительные параметры MSBuild

Интеграция MSBuild предоставляет параметры, которые можно указать в файле проекта или через глобальные свойства в командной строке, например -p:TestingPlatformShowTestsFailure=true.

Это доступные варианты:

Отображение сбоя на тест

По умолчанию тестовые сбои суммируются в файл .log , а в MSBuild сообщается один сбой для каждого тестового проекта.

Чтобы отобразить ошибки для каждого неудачного теста, укажите -p:TestingPlatformShowTestsFailure=true в командной строке или добавьте <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure> свойство в файл проекта.

В командной строке:

dotnet test -p:TestingPlatformShowTestsFailure=true

Или в файле проекта:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>

    <OutputType>Exe</OutputType>
    <EnableMSTestRunner>true</EnableMSTestRunner>

    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>

    <!-- Add this to your project file. -->
    <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>

  </PropertyGroup>

  <!-- ... -->

</Project>

Показать полные выходные данные платформы

По умолчанию все выходные данные консоли, которые записываются в базовый исполняемый файл теста, фиксируются и скрыты от пользователя. Сюда входят баннер, сведения о версии и отформатированные сведения о тесте.

Чтобы отобразить эти сведения вместе с выходными<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput> данными MSBuild.

Этот параметр не влияет на то, как платформа тестирования записывает выходные данные пользователей, написанные Console.WriteLine или другими аналогичными способами записи в консоль.

В командной строке:

dotnet test -p:TestingPlatformCaptureOutput=false

Или в файле проекта:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>

    <OutputType>Exe</OutputType>
    <EnableMSTestRunner>true</EnableMSTestRunner>

    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>

    <!-- Add this to your project file. -->
    <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>

  </PropertyGroup>

  <!-- ... -->

</Project>