microsoft / vs-extension-testing
Unit Size

The distribution of size of units (measured in lines of code).

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 253 units with 3,364 lines of code in units (49.0% of code).
    • 1 very long units (508 lines of code)
    • 5 long units (327 lines of code)
    • 24 medium size units (789 lines of code)
    • 54 small units (787 lines of code)
    • 169 very small units (953 lines of code)
15% | 9% | 23% | 23% | 28%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs15% | 9% | 23% | 23% | 28%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
src/Microsoft.VisualStudio.Extensibility.Testing.SourceGenerator71% | 0% | 3% | 5% | 18%
src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared0% | 13% | 28% | 29% | 28%
src/Microsoft.VisualStudio.IntegrationTestService.Shared0% | 0% | 37% | 33% | 29%
src/Microsoft.VisualStudio.VsixInstaller.Shared0% | 0% | 85% | 0% | 14%
src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.IntegrationTests.Shared0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public void Initialize()
in src/Microsoft.VisualStudio.Extensibility.Testing.SourceGenerator/TestServicesSourceGenerator.cs
508 40 1
protected override async Task RunTestCollectionAsync()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Harness/IdeTestAssemblyRunner.cs
80 9 4
private static async Task StartNewVisualStudioProcessAsync()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Harness/VisualStudioInstanceFactory.cs
68 5 4
private static DTE? GetDebuggerHostDte()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Harness/VisualStudioInstance.cs
67 12 0
internal static void TryWriteWatsonEntriesToFile()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Harness/EventLogCollector.cs
56 8 1
protected override async Task InvokeTestMethodAsync()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Threading/InProcessIdeTestInvoker.cs
56 7 1
public bool OnMessage()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Harness/IdeTestAssemblyRunner.cs
47 9 1
internal static void TryWriteDotNetEntriesToFile()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Harness/EventLogCollector.cs
43 7 1
public Tuple InvokeTest()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/InProcess/TestInvoker_InProc.cs
42 2 6
protected override Task BeforeTestMethodInvokedAsync()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Threading/InProcessIdeTestInvoker.cs
42 6 0
public static void Install()
in src/Microsoft.VisualStudio.VsixInstaller.Shared/Installer.cs
42 6 3
private static BitmapSource? TryCaptureFullScreen()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Harness/ScreenshotService.cs
41 3 0
private async Task UpdateCurrentlyRunningInstanceAsync()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Harness/VisualStudioInstanceFactory.cs
38 4 5
internal static string GetIdeState()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/InProcess/VisualStudio_InProc.cs
37 9 0
private static bool TrySetForegroundWindow()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/InProcess/VisualStudio_InProc.cs
37 8 1
protected override Task AfterTestMethodInvokedAsync()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Threading/InProcessIdeTestInvoker.cs
36 5 0
public static DTE? TryLocateDteForProcess()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Harness/IntegrationHelper.cs
35 6 1
public VisualStudioInstance()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Harness/VisualStudioInstance.cs
33 2 5
public Tuple InvokeTest()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/OutOfProcess/TestInvoker_OutOfProc.cs
33 5 6
internal static bool IsInstalled()
in src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/Threading/IdeTestCaseBase.cs
31 7 1