NUnit.ParallelizableTestsVisualizer
1.0.0
See the version list below for details.
dotnet add package NUnit.ParallelizableTestsVisualizer --version 1.0.0
NuGet\Install-Package NUnit.ParallelizableTestsVisualizer -Version 1.0.0
<PackageReference Include="NUnit.ParallelizableTestsVisualizer" Version="1.0.0" />
<PackageVersion Include="NUnit.ParallelizableTestsVisualizer" Version="1.0.0" />
<PackageReference Include="NUnit.ParallelizableTestsVisualizer" />
paket add NUnit.ParallelizableTestsVisualizer --version 1.0.0
#r "nuget: NUnit.ParallelizableTestsVisualizer, 1.0.0"
#:package NUnit.ParallelizableTestsVisualizer@1.0.0
#addin nuget:?package=NUnit.ParallelizableTestsVisualizer&version=1.0.0
#tool nuget:?package=NUnit.ParallelizableTestsVisualizer&version=1.0.0
NUnit.ParallelizableTestsVisualizer
NUnit.ParallelizableTestsVisualizer — это инструмент для визуализации параллельного выполнения тестов NUnit. Он генерирует временную диаграмму, которая отображает, как тесты выполняются на разных потоках, помогая находить слабые места в синхронизации и оптимизировать общее время прогона тестового набора.
🎯 О проекте
При использовании атрибута Parallelizable в NUnit для ускорения выполнения тестов бывает сложно понять, как именно они распределяются по потокам, где возникают задержки из-за блокировок (NonParallelizable) или других зависимостей. Этот инструмент дает наглядное представление об этом процессе, превращая текстовый лог выполнения в интерактивную временную диаграмму (Gantt-диаграмму).
⚙️ Установка и подключение
1. Подключение к тестовому проекту
Через nuget.org
2. Настройка сборки отчета
Инструмент интегрируется в процесс выполнения тестов, собирает необходимые данные и после завершения прогона формирует HTML-отчет. Достаточно добавить атрибут:
[assembly: TestExecutionTracker("TestResults", 120)]
🛠 Как это работает
- Сбор данных: Во время выполнения тестов инструмент перехватывает события начала и окончания каждого теста, а также информацию о потоке, на котором он выполняется.
- Генерация отчета: После завершения тестового прогона собранные данные преобразуются в JSON, который используется для построения диаграммы.
- Визуализация: Открывается HTML-страница с интерактивной диаграммой, где:
- Каждая строка представляет отдельный поток.
- Цветные блоки на строке — это отдельные тесты.
- Длина блока соответствует времени выполнения теста.
- Цвета могут обозначать разные тестовые классы или фикстуры.
📊 Пример использования и отчет
Сгенерированный отчет позволяет:
- Масштабировать временную шкалу для детального изучения.
- Наводить курсор на блок теста, чтобы увидеть его точное название и длительность.
- Визуально оценить эффективность параллелизации:
- Равномерно ли загружены потоки?
- Есть ли долгие тесты, блокирующие выполнение других?
- Как поведут себя тесты при повторном запуске?
✨ Преимущества
- Наглядность: Замена текстового лога на визуальную диаграмму.
- Оптимизация: Позволяет точечно находить проблемы синхронизации и пересматривать стратегию параллельного выполнения.
- Простота интеграции: Минимальные изменения в существующем тестовом проекте.
| Product | Versions 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. |
-
net8.0
- NUnit (>= 4.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.