NUnit.ParallelizableTestsVisualizer 1.0.1

dotnet add package NUnit.ParallelizableTestsVisualizer --version 1.0.1
                    
NuGet\Install-Package NUnit.ParallelizableTestsVisualizer -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NUnit.ParallelizableTestsVisualizer" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NUnit.ParallelizableTestsVisualizer" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="NUnit.ParallelizableTestsVisualizer" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NUnit.ParallelizableTestsVisualizer --version 1.0.1
                    
#r "nuget: NUnit.ParallelizableTestsVisualizer, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NUnit.ParallelizableTestsVisualizer@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NUnit.ParallelizableTestsVisualizer&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=NUnit.ParallelizableTestsVisualizer&version=1.0.1
                    
Install as a Cake Tool

NUnit.ParallelizableTestsVisualizer

License: MIT

NUnit.ParallelizableTestsVisualizer — это инструмент для визуализации параллельного выполнения тестов NUnit. Он генерирует временную диаграмму, которая отображает, как тесты выполняются на разных потоках, помогая находить слабые места в синхронизации и оптимизировать общее время прогона тестового набора.

🎯 О проекте

При использовании атрибута Parallelizable в NUnit для ускорения выполнения тестов бывает сложно понять, как именно они распределяются по потокам, где возникают задержки из-за блокировок (NonParallelizable) или других зависимостей. Этот инструмент дает наглядное представление об этом процессе, превращая текстовый лог выполнения в интерактивную временную диаграмму (Gantt-диаграмму).

⚙️ Установка и подключение

1. Подключение к тестовому проекту

Через nuget.org

2. Настройка сборки отчета

Инструмент интегрируется в процесс выполнения тестов, собирает необходимые данные и после завершения прогона формирует HTML-отчет. Достаточно добавить атрибут:

[assembly: TestExecutionTracker("TestResults", 120)]

🛠 Как это работает

  1. Сбор данных: Во время выполнения тестов инструмент перехватывает события начала и окончания каждого теста, а также информацию о потоке, на котором он выполняется.
  2. Генерация отчета: После завершения тестового прогона собранные данные преобразуются в JSON, который используется для построения диаграммы.
  3. Визуализация: Открывается HTML-страница с интерактивной диаграммой, где:
    • Каждая строка представляет отдельный поток.
    • Цветные блоки на строке — это отдельные тесты.
    • Длина блока соответствует времени выполнения теста.
    • Цвета могут обозначать разные тестовые классы или фикстуры.

📊 Пример использования и отчет

Сгенерированный отчет позволяет:

  • Масштабировать временную шкалу для детального изучения.
  • Наводить курсор на блок теста, чтобы увидеть его точное название и длительность.
  • Визуально оценить эффективность параллелизации:
    • Равномерно ли загружены потоки?
    • Есть ли долгие тесты, блокирующие выполнение других?
    • Как поведут себя тесты при повторном запуске?

✨ Преимущества

  • Наглядность: Замена текстового лога на визуальную диаграмму.
  • Оптимизация: Позволяет точечно находить проблемы синхронизации и пересматривать стратегию параллельного выполнения.
  • Простота интеграции: Минимальные изменения в существующем тестовом проекте.
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 32 2/10/2026
1.0.0 33 2/10/2026