A modern, fast and flexible .NET testing framework
This report summarizes scanner evidence for thomhurst/TUnit, a C# project with 3,974 GitHub stars. SynthScan examined 563,390 lines of code across 3795 source files, recording 1375 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 6.8 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 934 finding(s).
Are imports declared and package/API names verified? 215 finding(s).
Are wrappers, guards, and repeated structures necessary? 227 finding(s).
Which changes need focused human review? 1375 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1375 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/TUnit.TestProject/HumanizerDisplayNameTests.cs | 21 | return context.TestContext.Metadata.TestDetails.TestName.Humanize(); | CODE |
| CRITICAL | tests/TUnit.TestProject/ConsoleTests.cs | 12 | await Assert.That(TestContext.Current.GetStandardOutput()).Contains(TestContext.Current.Metadata.TestDetails.Met | CODE |
| CRITICAL | tests/TUnit.UnitTests/PropertyInjectorTests.cs | 24 | await Assert.That(context.Metadata.TestDetails.TestClassInjectedPropertyArguments.Values.Single()) | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 146 | [DEBUG 01:24:41.842] TestScheduler.ExecuteTestWhenReadyAsync: Starting test TUnit.UnitTests.GenericTestClass_Bool.1.1.Te | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 147 | [DEBUG 01:24:41.843] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.GenericTestClass_Bool.1.1.TestWithPar | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 149 | [DEBUG 01:24:41.843] HookOrchestrator.OnTestStartingAsync: Test=TUnit.UnitTests.GenericTestClass_Bool.1.1.TestWithParame | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 150 | [DEBUG 01:24:41.843] SingleTestExecutor.ExecuteTestAsync: Starting TUnit.UnitTests.GenericTestClass_Bool.1.1.TestWithPar | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 159 | [DEBUG 01:24:41.848] SingleTestExecutor.ExecuteTestAsync: Completed TUnit.UnitTests.GenericTestClass_Bool.1.1.TestWithPa | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 160 | [DEBUG 01:24:41.848] HookOrchestrator.OnTestCompletedAsync: Test=TUnit.UnitTests.GenericTestClass_Bool.1.1.TestWithParam | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 161 | [DEBUG 01:24:41.848] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.GenericTestClass_Bool.1.1.TestWithPar | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 162 | [DEBUG 01:24:41.848] TestScheduler.ExecuteTestWhenReadyAsync: Starting test TUnit.UnitTests.GenericTestClass_Bool.1.1.Te | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 163 | [DEBUG 01:24:41.848] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.GenericTestClass_Bool.1.1.TestWithPar | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 164 | [DEBUG 01:24:41.848] HookOrchestrator.OnTestStartingAsync: Test=TUnit.UnitTests.GenericTestClass_Bool.1.1.TestWithParame | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 165 | [DEBUG 01:24:41.848] SingleTestExecutor.ExecuteTestAsync: Starting TUnit.UnitTests.GenericTestClass_Bool.1.1.TestWithPar | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 166 | [DEBUG 01:24:41.848] SingleTestExecutor.ExecuteTestAsync: Completed TUnit.UnitTests.GenericTestClass_Bool.1.1.TestWithPa | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 167 | [DEBUG 01:24:41.848] HookOrchestrator.OnTestCompletedAsync: Test=TUnit.UnitTests.GenericTestClass_Bool.1.1.TestWithParam | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 168 | [DEBUG 01:24:41.850] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.GenericTestClass_Bool.1.1.TestWithPar | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 183 | [DEBUG 01:24:41.855] TestScheduler.ExecuteTestWhenReadyAsync: Starting test TUnit.UnitTests.AsyncDataSourceTests.1.1.Tes | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 184 | [DEBUG 01:24:41.855] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSync | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 185 | [DEBUG 01:24:41.855] HookOrchestrator.OnTestStartingAsync: Test=TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSyncDat | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 186 | [DEBUG 01:24:41.855] SingleTestExecutor.ExecuteTestAsync: Starting TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSync | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 198 | [DEBUG 01:24:41.857] SingleTestExecutor.ExecuteTestAsync: Completed TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSyn | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 199 | [DEBUG 01:24:41.857] HookOrchestrator.OnTestCompletedAsync: Test=TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSyncDa | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 200 | [DEBUG 01:24:41.857] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSync | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 201 | [DEBUG 01:24:41.857] TestScheduler.ExecuteTestWhenReadyAsync: Starting test TUnit.UnitTests.AsyncDataSourceTests.1.1.Tes | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 202 | [DEBUG 01:24:41.857] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSync | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 203 | [DEBUG 01:24:41.857] HookOrchestrator.OnTestStartingAsync: Test=TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSyncDat | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 204 | [DEBUG 01:24:41.857] SingleTestExecutor.ExecuteTestAsync: Starting TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSync | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 205 | [DEBUG 01:24:41.857] SingleTestExecutor.ExecuteTestAsync: Completed TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSyn | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 206 | [DEBUG 01:24:41.857] HookOrchestrator.OnTestCompletedAsync: Test=TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSyncDa | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 207 | [DEBUG 01:24:41.857] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSync | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 208 | [DEBUG 01:24:41.858] TestScheduler.ExecuteTestWhenReadyAsync: Starting test TUnit.UnitTests.AsyncDataSourceTests.1.1.Tes | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 209 | [DEBUG 01:24:41.858] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSync | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 210 | [DEBUG 01:24:41.858] HookOrchestrator.OnTestStartingAsync: Test=TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSyncDat | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 211 | [DEBUG 01:24:41.858] SingleTestExecutor.ExecuteTestAsync: Starting TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSync | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 212 | [DEBUG 01:24:41.858] SingleTestExecutor.ExecuteTestAsync: Completed TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSyn | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 213 | [DEBUG 01:24:41.858] HookOrchestrator.OnTestCompletedAsync: Test=TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSyncDa | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 214 | [DEBUG 01:24:41.858] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithSync | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 215 | [DEBUG 01:24:41.858] TestScheduler.ExecuteTestWhenReadyAsync: Starting test TUnit.UnitTests.AsyncDataSourceTests.1.1.Tes | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 216 | [DEBUG 01:24:41.858] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyn | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 217 | [DEBUG 01:24:41.858] HookOrchestrator.OnTestStartingAsync: Test=TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyncTa | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 218 | [DEBUG 01:24:41.858] SingleTestExecutor.ExecuteTestAsync: Starting TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyn | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 219 | [DEBUG 01:24:41.860] SingleTestExecutor.ExecuteTestAsync: Completed TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsy | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 220 | [DEBUG 01:24:41.860] HookOrchestrator.OnTestCompletedAsync: Test=TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyncT | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 221 | [DEBUG 01:24:41.860] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyn | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 222 | [DEBUG 01:24:41.860] TestScheduler.ExecuteTestWhenReadyAsync: Starting test TUnit.UnitTests.AsyncDataSourceTests.1.1.Tes | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 223 | [DEBUG 01:24:41.860] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyn | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 224 | [DEBUG 01:24:41.860] HookOrchestrator.OnTestStartingAsync: Test=TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyncTa | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 225 | [DEBUG 01:24:41.860] SingleTestExecutor.ExecuteTestAsync: Starting TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyn | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 226 | [DEBUG 01:24:41.860] SingleTestExecutor.ExecuteTestAsync: Completed TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsy | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 227 | [DEBUG 01:24:41.860] HookOrchestrator.OnTestCompletedAsync: Test=TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyncT | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 228 | [DEBUG 01:24:41.860] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyn | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 229 | [DEBUG 01:24:41.860] TestScheduler.ExecuteTestWhenReadyAsync: Starting test TUnit.UnitTests.AsyncDataSourceTests.1.1.Tes | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 230 | [DEBUG 01:24:41.860] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyn | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 231 | [DEBUG 01:24:41.860] HookOrchestrator.OnTestStartingAsync: Test=TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyncTa | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 232 | [DEBUG 01:24:41.860] SingleTestExecutor.ExecuteTestAsync: Starting TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyn | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 233 | [DEBUG 01:24:41.860] SingleTestExecutor.ExecuteTestAsync: Completed TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsy | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 234 | [DEBUG 01:24:41.860] HookOrchestrator.OnTestCompletedAsync: Test=TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyncT | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 235 | [DEBUG 01:24:41.860] TestScheduler.ExecuteTestWhenReadyAsync: Test TUnit.UnitTests.AsyncDataSourceTests.1.1.TestWithAsyn | CODE |
| CRITICAL⚡ | tests/TUnit.UnitTests/output.txt | 236 | [DEBUG 01:24:41.860] TestScheduler.ExecuteTestWhenReadyAsync: Starting test TUnit.UnitTests.AsyncDataSourceTests.1.1.Tes | CODE |
| 128 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …NugetTester/TUnit.NugetTester/AotCompatibilityTests.cs | 1 | using TUnit.Assertions.Enums; | COMMENT |
| LOW | tests/TUnit.TestProject/Tests.cs | 381 | .IsEqualTo("ABCDE", StringComparison.Ordinal); | COMMENT |
| LOW | tests/TUnit.TestProject/Tests.cs | 401 | COMMENT | |
| LOW | tests/TUnit.TestProject/CombinedDataSourceErrorTests.cs | 1 | using TUnit.TestProject.Attributes; | COMMENT |
| LOW | tests/TUnit.TestProject/CombinedDataSourceErrorTests.cs | 21 | // } | COMMENT |
| LOW | tests/TUnit.TestProject/CombinedDataSourceErrorTests.cs | 41 | yield break; | COMMENT |
| LOW | tests/TUnit.TestProject/HookExecutionOrderTest.cs | 21 | public void VerifyExecutionOrder() | COMMENT |
| LOW | tests/TUnit.TestProject/Bugs/5800/Repro.cs | 1 | using TUnit.TestProject.Attributes; | COMMENT |
| LOW | …roject/Bugs/3990/ClassLevelCombinedDataSourcesTests.cs | 81 | await Assert.That(z).IsIn([true, false]); | COMMENT |
| LOW | …Project/Bugs/5728/DefaultTimeoutClassificationTests.cs | 1 | using TUnit.TestProject.Attributes; | COMMENT |
| LOW | tests/TUnit.TestProject/Bugs/_6557/Tests.cs | 1 | using TUnit.Core.Interfaces; | COMMENT |
| LOW | …t.TestProject/Bugs/_6339/TimeoutAfterHookTokenTests.cs | 1 | using TUnit.TestProject.Attributes; | COMMENT |
| LOW | tests/TUnit.TestProject/Bugs/1570/Tests.cs | 21 | public async Task GetTests_Without_Filtering_On_TestClassArguments_Test() | COMMENT |
| LOW | …t.TestProject/Bugs/4032/NestedAsyncInitializerTests.cs | 1 | using TUnit.Core.Interfaces; | COMMENT |
| LOW | tests/TUnit.TestProject/Bugs/3803/Tests.cs | 1 | using TUnit.TestProject.Attributes; | COMMENT |
| LOW | …tProject/Bugs/_2804/CriticalHookChainExecutionTests.cs | 181 | // AfterEveryTest execution verified | COMMENT |
| LOW | …stProject/Bugs/4715/AttributePropertyInjectionTests.cs | 1 | using TUnit.Core.Interfaces; | COMMENT |
| LOW | …2/InstanceMethodDataSourceWithAsyncInitializerTests.cs | 1 | using System.Collections.Concurrent; | COMMENT |
| LOW | …2/InstanceMethodDataSourceWithAsyncInitializerTests.cs | 21 | /// which was unexpected and resource-intensive. | COMMENT |
| LOW | …/TUnit.TestProject/Bugs/3993/IAsyncInitializerTests.cs | 1 | using System.Collections.Concurrent; | COMMENT |
| LOW | …t.TestProject/Bugs/3190/NegativeCategoryFilterTests.cs | 1 | using System; | COMMENT |
| LOW | …t.TestProject/Bugs/3190/NegativeCategoryFilterTests.cs | 21 | // ✓ Specific name match: /*/MyExplicitTest | COMMENT |
| LOW | …t.TestProject/Bugs/3190/NegativeCategoryFilterTests.cs | 41 | // - TestClass1.TestMethod2 ✓ (not explicit) | COMMENT |
| LOW | …TestProject/Bugs/_6554/PartialInjectionFailureTests.cs | 1 | using TUnit.Core.Interfaces; | COMMENT |
| LOW | tests/TUnit.TestProject/Bugs/_6554/Tests.cs | 1 | using TUnit.Core.Interfaces; | COMMENT |
| LOW | tests/TUnit.TestProject/Bugs/5700/Repro.cs | 1 | using TUnit.TestProject.Attributes; | COMMENT |
| LOW | tests/TUnit.TestProject/Bugs/5700/Repro.cs | 21 | /// Making Test2 wait for Test1 as well (as an earlier version did) measured | COMMENT |
| LOW | …t.TestProject/Bugs/4440/GenericMethodDiscoveryTests.cs | 1 | using TUnit.TestProject.Attributes; | COMMENT |
| LOW | tests/SharedTestHelpers/AnalyzerTestCompatibility.cs | 1 | using System; | COMMENT |
| LOW | tests/SharedTestHelpers/AnalyzerTestCompatibility.cs | 21 | /// test runtime). Each analyzer test csproj copies the relevant netstandard2.0 build into the test | COMMENT |
| LOW | tests/SharedTestHelpers/RulesDecouplingVerifier.cs | 1 | using System.Collections.Generic; | COMMENT |
| LOW | tests/SharedTestHelpers/RulesDecouplingVerifier.cs | 21 | /// fixers must use the compile-time-baked <c>DiagnosticIds</c> constants instead, which this | COMMENT |
| LOW | tests/TUnit.Mocks.Tests/ManyParameterMockTests.cs | 1 | using System.Threading.Tasks; | COMMENT |
| LOW | tests/TUnit.Mocks.Tests/Issue5425Tests.cs | 1 | #nullable enable | COMMENT |
| LOW | tests/TUnit.Mocks.Tests/WrapNoParameterlessCtorTests.cs | 1 | using TUnit.Mocks; | COMMENT |
| LOW | tests/TUnit.Mocks.Tests/NameCollisionTests.cs | 1 | using TUnit.Mocks.Arguments; | COMMENT |
| LOW | tests/TUnit.UnitTests/TestConstructorTests.cs | 41 | // NOTE: Working example with [TestConstructor] can be found in the source generated files | COMMENT |
| LOW | tests/TUnit.UnitTests/SessionActivityLifecycleTests.cs | 421 | public ValueTask<IReadOnlyList<NamedHookDelegate<TestDiscoveryContext>>> CollectAfterTestDiscoveryHooksAsync() = | COMMENT |
| LOW | tests/TUnit.UnitTests/EmptyDataSourceTests.cs | 1 | namespace TUnit.UnitTests; | COMMENT |
| LOW | ….Test._.verified/TUnit.Aspire.Test/IntegrationTest1.cs | 1 | using TUnit.Aspire; | COMMENT |
| LOW | ….Test._.verified/TUnit.Aspire.Test/IntegrationTest1.cs | 21 | // }); | COMMENT |
| LOW | …Unit.Engine.Tests/DefaultTimeoutClassificationTests.cs | 21 | // The matching [Before(TestDiscovery)] hook in TestProject detects this class name | COMMENT |
| LOW | …tions.Tests/CovariantGenericExtensionInferenceTests.cs | 1 | using TUnit.Assertions.Attributes; | COMMENT |
| LOW | tests/TUnit.Assertions.Tests/AssertionGroupTests.cs | 41 | // // Test: "Foo" should match (IsNullOrEmpty AND EqualTo("Foo")) OR (IsNullOrEmpty OR EqualTo("Foo")) | COMMENT |
| LOW | tests/TUnit.Assertions.Tests/AssertionGroupTests.cs | 61 | // await Assert.That(async () => | COMMENT |
| LOW | tests/TUnit.Assertions.Tests/MemberNullabilityTests.cs | 1 | namespace TUnit.Assertions.Tests; | COMMENT |
| LOW | tests/TUnit.Assertions.Tests/AssemblyAssertionTests.cs | 61 | // var assembly = typeof(AssemblyAssertionTests).Assembly; | COMMENT |
| LOW | tests/TUnit.Assertions.Tests/RangeAssertionTests.cs | 41 | // { | COMMENT |
| LOW | tests/TUnit.Assertions.Tests/RangeAssertionTests.cs | 61 | // public async Task Test_Range_IsAll_Explicit() | COMMENT |
| LOW | …Assertions.Tests/AssertionBuilders/OrAssertionTests.cs | 401 | } | COMMENT |
| LOW | tests/TUnit.Assertions.Tests/Bugs/Issue6296Tests.cs | 1 | namespace TUnit.Assertions.Tests.Bugs; | COMMENT |
| LOW | tests/TUnit.Assertions.Tests/Bugs/Issue5720Tests.cs | 1 | namespace TUnit.Assertions.Tests.Bugs; | COMMENT |
| LOW | tests/TUnit.Assertions.Tests/Bugs/Issue5707Tests.cs | 1 | using TUnit.Assertions.Exceptions; | COMMENT |
| LOW | tests/TUnit.Assertions.Tests/Bugs/Tests1774.cs | 1 | namespace TUnit.Assertions.Tests.Bugs; | COMMENT |
| LOW | …/Bugs/Issue5692/ImplicitStringOperatorOverloadTests.cs | 1 | #pragma warning disable TUnitAssertions0002 // Assert statements must be awaited — inspecting returned assertion type | COMMENT |
| LOW | …sts/TUnit.Assertions.Tests/Old/StringAssertionTests.cs | 1 | using TUnit.Assertions.Extensions; | COMMENT |
| LOW | …sts/TUnit.Assertions.Tests/Old/StringAssertionTests.cs | 21 | // await TUnitAssert.ThrowsAsync<TUnitAssertionException>(async () => await TUnitAssert.That(str).IsNullOrEmpty() | COMMENT |
| LOW | …sts/TUnit.Assertions.Tests/Old/StringAssertionTests.cs | 41 | // var str = "Hello"; | COMMENT |
| LOW | ….SourceGenerator.Tests/AssemblyNamesWithDashesTests.cs | 1 | namespace TUnit.Core.SourceGenerator.Tests; | COMMENT |
| LOW | …e.SourceGenerator.Tests/ParamsArrayCompilationTests.cs | 1 | using Microsoft.CodeAnalysis; | COMMENT |
| 792 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/TUnit.Mocks.Tests/EdgeCaseTests.cs | 7 | // ─── Interfaces for Edge Case Tests ─────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/EdgeCaseTests.cs | 122 | // ─── Test Classes ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RefStructTests.cs | 6 | // ─── Interface with ref struct methods ─────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RefStructTests.cs | 22 | // ─── Tests ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkConcreteTests.cs | 8 | // ─── Base class for concrete hierarchy ────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkConcreteTests.cs | 21 | // ─── The kitchen-sink concrete class ──────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkConcreteTests.cs | 101 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkConcreteTests.cs | 131 | // ─── Tests ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 76 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 78 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 87 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 89 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 98 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 100 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 130 | // ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 132 | // ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 141 | // ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 143 | // ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 7 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 9 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 25 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 27 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 52 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 54 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 274 | // ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 276 | // ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 380 | // ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 382 | // ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 457 | // ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 459 | // ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 548 | // ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/RealWorldScenarioTests.cs | 550 | // ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/TypedCallbackTests.cs | 151 | // ─── Strongly-Typed Callback Tests (Beyond Parity: US23) ──────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/ImplicitArgConversionTests.cs | 12 | // ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/ImplicitArgConversionTests.cs | 14 | // ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/ImplicitArgConversionTests.cs | 115 | // ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/ImplicitArgConversionTests.cs | 118 | // ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/ImplicitArgConversionTests.cs | 289 | // ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/ImplicitArgConversionTests.cs | 291 | // ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/SpanReturnTests.cs | 6 | // ─── Interfaces with span-returning methods ───────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/SpanReturnTests.cs | 16 | // ─── Tests ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 26 | // ─── T2. Abstract class satisfies interface via abstract method ───────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 38 | // ─── T3. Class re-implements interface on top of base's implicit impl ─────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 56 | // ─── T4. Four-level inheritance, interface at root ────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 72 | // ─── T5. Write-only property ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 80 | // ─── T6. `abstract override` ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 92 | // ─── T7. Two interfaces with same-name members, different returns ─────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 119 | // ─── T9. Nullable value types ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 128 | // ─── T10. IDisposable + IAsyncDisposable ───────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 137 | // ─── T11. Explicit event with custom add/remove on base ───────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 152 | // ─── T12. Inner class inheriting closed generic ───────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 165 | // ─── T13. `new`-redeclared property in derived interface ──────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 177 | // ─── T14. Interface with indexer ──────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 232 | // ─── T15. Class implementing a static-abstract interface ──────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 248 | // ─── T16. IAsyncEnumerable with [EnumeratorCancellation] token ────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 255 | // ─── T17. `required` members on a mock target ─────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 285 | // ─── T19. Obsolete member ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 295 | // ─── T20. `ref readonly` return ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/TUnit.Mocks.Tests/KitchenSinkEdgeCasesTests.cs | 304 | // ─── Tests ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/TUnit.Mocks.Tests/MockAssertionExtensionsTests.cs | 22 | // ───────────────────────── WasCalled() shorthand (at least once) ───────────────────────── | COMMENT |
| 121 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …CodeFixers.Tests/AwaitAssertionCodeFixProviderTests.cs | 0 | using system.threading.tasks; using tunit.assertions; using tunit.assertions.extensions; using tunit.core; public class | STRING |
| HIGH | …yzers.Tests/CompilerArgumentsPopulatedAnalyzerTests.cs | 0 | using system.threading.tasks; using tunit.assertions; using tunit.assertions.extensions; using tunit.core; public class | STRING |
| HIGH | ….Analyzers.Tests/PreferIsTrueOrIsFalseAnalyzerTests.cs | 0 | using system.threading.tasks; using tunit.assertions; using tunit.assertions.extensions; using tunit.core; public class | STRING |
| HIGH | …ssertions.Analyzers.Tests/PreferIsNullAnalyzerTests.cs | 0 | using system.threading.tasks; using tunit.assertions; using tunit.assertions.extensions; using tunit.core; public class | STRING |
| HIGH | …Analyzers.Tests/ObjectBaseEqualsMethodAnalyzerTests.cs | 0 | using system.threading.tasks; using tunit.assertions; using tunit.assertions.extensions; using tunit.core; public class | STRING |
| HIGH | …ns.Analyzers.Tests/CollectionIsEqualToAnalyzerTests.cs | 0 | using system.threading.tasks; using tunit.assertions; using tunit.assertions.extensions; using tunit.core; public class | STRING |
| HIGH | …s.Analyzers.Tests/ConstantInAssertThatAnalyzerTests.cs | 0 | using system.threading.tasks; using tunit.assertions; using tunit.assertions.extensions; using tunit.core; public class | STRING |
| HIGH | …zers.Tests/InaccessibleConstructorMockAnalyzerTests.cs | 0 | public class myservice { } public class testclass { public void test() { tunit.mocks.mock.of<myservice>(); } } | STRING |
| HIGH | …TUnit.Mocks.Analyzers.Tests/StructMockAnalyzerTests.cs | 0 | public class myservice { } public class testclass { public void test() { tunit.mocks.mock.of<myservice>(); } } | STRING |
| HIGH | ….Mocks.Analyzers.Tests/SealedClassMockAnalyzerTests.cs | 0 | public class myservice { } public class testclass { public void test() { tunit.mocks.mock.of<myservice>(); } } | STRING |
| HIGH | …zers.Tests/InaccessibleConstructorMockAnalyzerTests.cs | 0 | public interface imyservice { } public class testclass { public void test() { tunit.mocks.mock.of<imyservice>(); } } | STRING |
| HIGH | …TUnit.Mocks.Analyzers.Tests/StructMockAnalyzerTests.cs | 0 | public interface imyservice { } public class testclass { public void test() { tunit.mocks.mock.of<imyservice>(); } } | STRING |
| HIGH | ….Mocks.Analyzers.Tests/SealedClassMockAnalyzerTests.cs | 0 | public interface imyservice { } public class testclass { public void test() { tunit.mocks.mock.of<imyservice>(); } } | STRING |
| HIGH | …ourceGenerator.Tests/CrossCompilationAttributeTests.cs | 0 | namespace system.diagnostics.codeanalysis; public class excludefromcodecoverageattribute : attribute; | STRING |
| HIGH | tests/TUnit.Core.SourceGenerator.Tests/TestsBase.cs | 0 | namespace system.diagnostics.codeanalysis; public class excludefromcodecoverageattribute : attribute; | STRING |
| HIGH | …ts/TUnit.Assertions.SourceGenerator.Tests/TestsBase.cs | 0 | namespace system.diagnostics.codeanalysis; public class excludefromcodecoverageattribute : attribute; | STRING |
| HIGH | …ourceGenerator.Tests/CrossCompilationAttributeTests.cs | 0 | namespace system.diagnostics.codeanalysis; public class unconditionalsuppressmessageattribute : attribute; | STRING |
| HIGH | tests/TUnit.Core.SourceGenerator.Tests/TestsBase.cs | 0 | namespace system.diagnostics.codeanalysis; public class unconditionalsuppressmessageattribute : attribute; | STRING |
| HIGH | …ts/TUnit.Assertions.SourceGenerator.Tests/TestsBase.cs | 0 | namespace system.diagnostics.codeanalysis; public class unconditionalsuppressmessageattribute : attribute; | STRING |
| HIGH | …s/TUnit.Analyzers.Tests/XUnitMigrationAnalyzerTests.cs | 0 | public class myclass { [test] public void mytest() { bool realized = false; handlerealized(this, ref realized); } privat | STRING |
| HIGH | …/TUnit.Analyzers.Tests/MSTestMigrationAnalyzerTests.cs | 0 | public class myclass { [test] public void mytest() { bool realized = false; handlerealized(this, ref realized); } privat | STRING |
| HIGH | …s/TUnit.Analyzers.Tests/NUnitMigrationAnalyzerTests.cs | 0 | public class myclass { [test] public void mytest() { bool realized = false; handlerealized(this, ref realized); } privat | STRING |
| HIGH | …s/TUnit.Analyzers.Tests/XUnitMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public class myclass { [test] public async task mytest() { trygetvalue("key", out int valu | STRING |
| HIGH | …/TUnit.Analyzers.Tests/MSTestMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public class myclass { [test] public async task mytest() { trygetvalue("key", out int valu | STRING |
| HIGH | …s/TUnit.Analyzers.Tests/NUnitMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public class myclass { [test] public async task mytest() { trygetvalue("key", out int valu | STRING |
| HIGH | …s/TUnit.Analyzers.Tests/XUnitMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public interface itestrunner { void run(); } public class myclass : itestrunner { [test] p | STRING |
| HIGH | …/TUnit.Analyzers.Tests/MSTestMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public interface itestrunner { void run(); } public class myclass : itestrunner { [test] p | STRING |
| HIGH | …s/TUnit.Analyzers.Tests/NUnitMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public interface itestrunner { void run(); } public class myclass : itestrunner { [test] p | STRING |
| HIGH | …s/TUnit.Analyzers.Tests/XUnitMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public class outerclass { public class innertests { [test] public async task innertest() { | STRING |
| HIGH | …/TUnit.Analyzers.Tests/MSTestMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public class outerclass { public class innertests { [test] public async task innertest() { | STRING |
| HIGH | …s/TUnit.Analyzers.Tests/NUnitMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public class outerclass { public class innertests { [test] public async task innertest() { | STRING |
| HIGH | …s/TUnit.Analyzers.Tests/XUnitMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public class firsttestclass { [test] public async task firsttest() { await assert.that(tru | STRING |
| HIGH | …/TUnit.Analyzers.Tests/MSTestMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public class firsttestclass { [test] public async task firsttest() { await assert.that(tru | STRING |
| HIGH | …s/TUnit.Analyzers.Tests/NUnitMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public class firsttestclass { [test] public async task firsttest() { await assert.that(tru | STRING |
| HIGH | …s/TUnit.Analyzers.Tests/XUnitMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public class generictestclass<t> { [test] public async task generictest() { var instance = | STRING |
| HIGH | …/TUnit.Analyzers.Tests/MSTestMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public class generictestclass<t> { [test] public async task generictest() { var instance = | STRING |
| HIGH | …s/TUnit.Analyzers.Tests/NUnitMigrationAnalyzerTests.cs | 0 | using system.threading.tasks; public class generictestclass<t> { [test] public async task generictest() { var instance = | STRING |
| HIGH | …t.Analyzers.Tests/TestMethodParametersAnalyzerTests.cs | 0 | using tunit.core; public class myclass { [{|#0:classdatasource<int>|}] [test] public void mytest() { } } | STRING |
| HIGH | tests/TUnit.Analyzers.Tests/ConsoleOutAnalyzerTests.cs | 0 | using tunit.core; public class myclass { [{|#0:classdatasource<int>|}] [test] public void mytest() { } } | STRING |
| HIGH | …/TUnit.Analyzers.Tests/ClassParametersAnalyzerTests.cs | 0 | using tunit.core; public class myclass { [{|#0:classdatasource<int>|}] [test] public void mytest() { } } | STRING |
| HIGH | …nit.Analyzers.Tests/InstanceTestMethodAnalyzerTests.cs | 0 | using tunit.core; public class myclass { [{|#0:classdatasource<int>|}] [test] public void mytest() { } } | STRING |
| HIGH | …/TUnit.Analyzers.Tests/ClassDataSourceAnalyzerTests.cs | 0 | using tunit.core; public class myclass { [{|#0:classdatasource<int>|}] [test] public void mytest() { } } | STRING |
| HIGH | …sts/MethodDataSourceMatchesConstructorAnalyzerTests.cs | 0 | using system.collections.generic; using tunit.core; [classdatasource<int>] public class myclass { public myclass(int val | STRING |
| HIGH | …/TUnit.Analyzers.Tests/ClassParametersAnalyzerTests.cs | 0 | using system.collections.generic; using tunit.core; [classdatasource<int>] public class myclass { public myclass(int val | STRING |
| HIGH | …/TUnit.Analyzers.Tests/ClassDataSourceAnalyzerTests.cs | 0 | using system.collections.generic; using tunit.core; [classdatasource<int>] public class myclass { public myclass(int val | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/docs/assertions/extensibility/custom-assertions.md | 18 | ### Step 1: Create an Assertion Class | COMMENT |
| LOW | docs/docs/assertions/extensibility/custom-assertions.md | 62 | ### Step 2: Create an Extension Method | COMMENT |
| LOW | docs/docs/assertions/extensibility/custom-assertions.md | 86 | ### Step 3: Use Your Custom Assertion | COMMENT |
| LOW | docs/docs/examples/complex-test-infrastructure.md | 19 | // Step 1: Create a shared Docker network | COMMENT |
| LOW | docs/docs/examples/complex-test-infrastructure.md | 34 | // Step 2: Kafka needs the Docker network | COMMENT |
| LOW | docs/docs/examples/complex-test-infrastructure.md | 53 | // Step 3: Kafka UI needs both the network AND the Kafka container | COMMENT |
| LOW | docs/docs/extending/logging.md | 116 | #### Step 1: Send the Test ID | COMMENT |
| LOW | docs/docs/extending/logging.md | 137 | #### Step 2: Resolve and Activate on the Receiving Side | COMMENT |
| LOW | docs/examples/nested-data-sources-quickstart.md | 11 | // Step 1: Create a test container wrapper | COMMENT |
| LOW | docs/examples/nested-data-sources-quickstart.md | 24 | // Step 2: Create WebApplicationFactory that uses the container | COMMENT |
| LOW | docs/examples/nested-data-sources-quickstart.md | 59 | // Step 3: Use in tests | COMMENT |
| LOW | …CloudShop.Tests/Tests/Traces/CheckoutTraceDemoTests.cs | 38 | // Step 1: Browse the catalogue — the API queries PostgreSQL and returns products | COMMENT |
| LOW⚡ | …CloudShop.Tests/Tests/Traces/CheckoutTraceDemoTests.cs | 49 | // Step 2: View the product detail — the API checks Redis, falls back to PostgreSQL on | COMMENT |
| LOW⚡ | …CloudShop.Tests/Tests/Traces/CheckoutTraceDemoTests.cs | 57 | // Step 3: View it again — this time the API serves it directly from Redis | COMMENT |
| LOW⚡ | …CloudShop.Tests/Tests/Traces/CheckoutTraceDemoTests.cs | 65 | // Step 4: Attempt to order more units than are in stock — the API validates against | COMMENT |
| LOW | src/TUnit.Analyzers/Migrators/Base/MigrationHelpers.cs | 192 | // Step 1: Remove file-level usings | COMMENT |
| LOW | src/TUnit.Analyzers/Migrators/Base/MigrationHelpers.cs | 224 | // Step 2: Remove usings inside namespace blocks | COMMENT |
| LOW | …/TUnit.Engine/Reporters/Html/GitHubArtifactUploader.cs | 38 | // Step 1: CreateArtifact (deduplicate name on 409 conflict) | COMMENT |
| LOW | …/TUnit.Engine/Reporters/Html/GitHubArtifactUploader.cs | 94 | // Step 2: Upload blob + compute SHA256 | COMMENT |
| LOW | …/TUnit.Engine/Reporters/Html/GitHubArtifactUploader.cs | 123 | // Step 3: FinalizeArtifact | COMMENT |
| LOW⚡ | src/TUnit.Engine/Services/ObjectLifecycleService.cs | 523 | // Step 1: Inject properties | COMMENT |
| LOW⚡ | src/TUnit.Engine/Services/ObjectLifecycleService.cs | 526 | // Step 2: Initialize nested objects depth-first (discovery-only) | COMMENT |
| LOW⚡ | src/TUnit.Engine/Services/ObjectLifecycleService.cs | 529 | // Step 3: Call IAsyncDiscoveryInitializer only (not regular IAsyncInitializer) | COMMENT |
| LOW | src/TUnit.Mocks.SourceGenerator/MockGenerator.cs | 80 | // Step 2: Merge all sources and deduplicate | STRING |
| LOW | src/TUnit.Mocks.SourceGenerator/MockGenerator.cs | 105 | // Step 3: Generate source for each unique type. The request's location is dropped first, | STRING |
| LOW | src/TUnit.Mocks.SourceGenerator/MockGenerator.cs | 154 | // Step 4: TM009 needs the location of the request that produced a failed model. Pairing | STRING |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 144 | // Step 1: Collect interface-implementing methods BEFORE any syntax modifications | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 149 | // Step 2: Convert assertions FIRST (while semantic model still matches the syntax tree) | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 156 | // Step 3: Framework-specific conversions (also use semantic model while it still matches) | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 160 | // Step 4: Fix method signatures that now contain await but aren't marked async | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 168 | // Step 5: Remove unnecessary base classes and interfaces | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 175 | // Step 6: Update lifecycle methods | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 182 | // Step 7: Convert attributes | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 189 | // Step 8: Ensure [Test] attribute is present when data attributes exist (NUnit-specific) | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 199 | // Step 9: Remove framework usings and add TUnit usings (do this LAST) | COMMENT |
| LOW | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 213 | // Step 10: Clean up trivia issues that can occur after transformations | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …CloudShop.Tests/Tests/Traces/CheckoutTraceDemoTests.cs | 38 | // Step 1: Browse the catalogue — the API queries PostgreSQL and returns products | COMMENT |
| LOW⚡ | …CloudShop.Tests/Tests/Traces/CheckoutTraceDemoTests.cs | 49 | // Step 2: View the product detail — the API checks Redis, falls back to PostgreSQL on | COMMENT |
| LOW⚡ | …CloudShop.Tests/Tests/Traces/CheckoutTraceDemoTests.cs | 57 | // Step 3: View it again — this time the API serves it directly from Redis | COMMENT |
| LOW⚡ | …CloudShop.Tests/Tests/Traces/CheckoutTraceDemoTests.cs | 65 | // Step 4: Attempt to order more units than are in stock — the API validates against | COMMENT |
| LOW | src/TUnit.Analyzers/Migrators/Base/MigrationHelpers.cs | 192 | // Step 1: Remove file-level usings | COMMENT |
| LOW | src/TUnit.Analyzers/Migrators/Base/MigrationHelpers.cs | 224 | // Step 2: Remove usings inside namespace blocks | COMMENT |
| LOW | …/TUnit.Engine/Reporters/Html/GitHubArtifactUploader.cs | 38 | // Step 1: CreateArtifact (deduplicate name on 409 conflict) | COMMENT |
| LOW | …/TUnit.Engine/Reporters/Html/GitHubArtifactUploader.cs | 94 | // Step 2: Upload blob + compute SHA256 | COMMENT |
| LOW | …/TUnit.Engine/Reporters/Html/GitHubArtifactUploader.cs | 123 | // Step 3: FinalizeArtifact | COMMENT |
| LOW⚡ | src/TUnit.Engine/Services/ObjectLifecycleService.cs | 523 | // Step 1: Inject properties | COMMENT |
| LOW⚡ | src/TUnit.Engine/Services/ObjectLifecycleService.cs | 526 | // Step 2: Initialize nested objects depth-first (discovery-only) | COMMENT |
| LOW⚡ | src/TUnit.Engine/Services/ObjectLifecycleService.cs | 529 | // Step 3: Call IAsyncDiscoveryInitializer only (not regular IAsyncInitializer) | COMMENT |
| LOW | src/TUnit.Engine/Building/TestBuilder.cs | 1478 | // For generic methods, we need to check if the data types match the expected types | COMMENT |
| LOW | src/TUnit.Engine/Building/TestBuilder.cs | 1630 | // For IEnumerable<T>, we need to check if the actual data is IEnumerable<int> vs IEnumerable<string> etc. | COMMENT |
| LOW | src/TUnit.Mocks.SourceGenerator/MockGenerator.cs | 80 | // Step 2: Merge all sources and deduplicate | STRING |
| LOW | src/TUnit.Mocks.SourceGenerator/MockGenerator.cs | 105 | // Step 3: Generate source for each unique type. The request's location is dropped first, | STRING |
| LOW | src/TUnit.Mocks.SourceGenerator/MockGenerator.cs | 154 | // Step 4: TM009 needs the location of the request that produced a failed model. Pairing | STRING |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 144 | // Step 1: Collect interface-implementing methods BEFORE any syntax modifications | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 149 | // Step 2: Convert assertions FIRST (while semantic model still matches the syntax tree) | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 156 | // Step 3: Framework-specific conversions (also use semantic model while it still matches) | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 160 | // Step 4: Fix method signatures that now contain await but aren't marked async | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 168 | // Step 5: Remove unnecessary base classes and interfaces | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 175 | // Step 6: Update lifecycle methods | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 182 | // Step 7: Convert attributes | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 189 | // Step 8: Ensure [Test] attribute is present when data attributes exist (NUnit-specific) | COMMENT |
| LOW⚡ | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 199 | // Step 9: Remove framework usings and add TUnit usings (do this LAST) | COMMENT |
| LOW | …lyzers.CodeFixers/Base/BaseMigrationCodeFixProvider.cs | 213 | // Step 10: Clean up trivia issues that can occur after transformations | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/TUnit.Assertions.Tests/EquatableTests.cs | 259 | // Test to verify the example from GitHub issue #2972 works exactly as requested | COMMENT |
| HIGH | tests/TUnit.Assertions.Tests/EquatableTests.cs | 259 | // Test to verify the example from GitHub issue #2972 works exactly as requested | COMMENT |
| HIGH | src/TUnit.Analyzers/Resources.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | src/TUnit.AspNetCore.Analyzers/Resources.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | src/TUnit.Assertions.Analyzers/Resources.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/TUnit.TestProject/CombinedDataSourceTests.cs | 314 | Street = "123 Main St", | CODE |
| LOW | tests/TUnit.TestProject/CombinedDataSourceTests.cs | 339 | await Assert.That(person.Address.Street).IsEqualTo("123 Main St"); | CODE |
| LOW | tests/TUnit.TestProject/NestedPropertyInjectionTests.cs | 19 | Street = "123 Main St", | CODE |
| LOW | tests/TUnit.TestProject/NestedPropertyInjectionTests.cs | 88 | yield return () => new PersonWithDataSource { Name = "John Doe", Address = null! }; | CODE |
| LOW | tests/TUnit.Mocks.Tests/RegexMatcherTests.cs | 53 | await Assert.That(greeter.Greet("555-1234")).IsEqualTo("phone"); | CODE |
| LOW | tests/TUnit.Mocks.Tests/RegexMatcherTests.cs | 82 | await Assert.That(greeter.Greet("user@example.com")).IsEqualTo("email"); | CODE |
| LOW | …nit.Assertions.Tests/Old/StringEqualsAssertionTests.cs | 112 | Lorem ipsum dolor sit amet diam duo amet sea rebum. | CODE |
| LOW | …nit.Assertions.Tests/Old/StringEqualsAssertionTests.cs | 112 | Lorem ipsum dolor sit amet diam duo amet sea rebum. | CODE |
| LOW | …nit.Assertions.Tests/Old/StringEqualsAssertionTests.cs | 133 | Lorem ipsum dolor sit amet diam duo amet sea rebum. | CODE |
| LOW | …nit.Assertions.Tests/Old/StringEqualsAssertionTests.cs | 133 | Lorem ipsum dolor sit amet diam duo amet sea rebum. | CODE |
| LOW⚡ | …nit.Assertions.Tests/Old/StringEqualsAssertionTests.cs | 155 | var expectedMessage = $"Expected to be equal to \"Lorem ipsum dolor sit amet diam duo amet sea rebum. Et volupt | STRING |
| LOW⚡ | …nit.Assertions.Tests/Old/StringEqualsAssertionTests.cs | 155 | var expectedMessage = $"Expected to be equal to \"Lorem ipsum dolor sit amet diam duo amet sea rebum. Et volupt | STRING |
| LOW⚡ | …nit.Assertions.Tests/Old/StringEqualsAssertionTests.cs | 156 | $"but received \"Lorem ipsum dolor sit amet diam duo amet sea rebum. Et voluptua ex volup | STRING |
| LOW⚡ | …nit.Assertions.Tests/Old/StringEqualsAssertionTests.cs | 156 | $"but received \"Lorem ipsum dolor sit amet diam duo amet sea rebum. Et voluptua ex volup | STRING |
| LOW | …s/TUnit.Analyzers.Tests/NUnitMigrationAnalyzerTests.cs | 1510 | [TestCase(1, Author = "John Doe")] | CODE |
| LOW | …s/TUnit.Analyzers.Tests/NUnitMigrationAnalyzerTests.cs | 1525 | [Property("Author", "John Doe")] | CODE |
| LOW | …s/TUnit.Analyzers.Tests/NUnitMigrationAnalyzerTests.cs | 3028 | {|#0:[Test(Author = "John Doe")]|} | CODE |
| LOW | …s/TUnit.Analyzers.Tests/NUnitMigrationAnalyzerTests.cs | 3040 | [Property("Author", "John Doe")] | CODE |
| LOW | …s/TUnit.Analyzers.Tests/NUnitMigrationAnalyzerTests.cs | 3060 | {|#0:[Test(Description = "Test description", Author = "Jane Doe")]|} | CODE |
| LOW | …s/TUnit.Analyzers.Tests/NUnitMigrationAnalyzerTests.cs | 3073 | [Property("Author", "Jane Doe")] | CODE |
| LOW | docs/docs/assertions/string.md | 160 | var email = "user@example.com"; | CODE |
| LOW | docs/docs/assertions/string.md | 415 | var email = "user@example.com"; | CODE |
| LOW | docs/docs/assertions/member-assertions.md | 20 | .Member(u => u.Email, email => email.IsEqualTo("user@example.com")); | CODE |
| LOW | …ssertions/extensibility/source-generator-assertions.md | 305 | await Assert.That("user@example.com").IsValidEmail(); // ✅ Passes | CODE |
| LOW | docs/docs/migration/mstest.md | 886 | [Owner("John Doe")] | CODE |
| LOW | docs/docs/migration/mstest.md | 910 | [Property("Owner", "John Doe")] | CODE |
| LOW | src/TUnit.Core/Helpers/DisplayNameSubstitutor.cs | 70 | /// Replaces every occurrence of <paramref name="placeholder"/> that is followed by a | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ts/TUnit.Mocks.SourceGenerator.Tests/Issue6829Tests.cs | 117 | /// from C# 14 extension blocks are omitted because the harness's Roslyn predates them — the | STRING |
| MEDIUM | …tCore.Core/Logging/CorrelatedTUnitLoggingExtensions.cs | 12 | /// and the <see cref="TUnitTestContextMiddleware"/> for robust test context resolution via | COMMENT |
| MEDIUM | …re.SourceGenerator/Generators/AotConverterGenerator.cs | 569 | // Use Zen's more robust approach for handling nullable types and type checks | COMMENT |
| MEDIUM | src/TUnit.Core/Executors/DedicatedThreadExecutor.cs | 364 | // Use a more robust synchronous wait pattern to avoid deadlocks | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/profile-tunit.sh | 21 | # Usage: | COMMENT |
| LOW | .github/scripts/pr-review-comment.sh | 12 | # Usage: | COMMENT |
| LOW | .github/scripts/triage-issue.sh | 10 | # Usage: | COMMENT |
| LOW | src/TUnit.Core/Attributes/ParallelLimiterAttribute.cs | 30 | /// Example usage: | COMMENT |
| LOW | src/TUnit.Core/Attributes/ParallelGroupAttribute.cs | 24 | /// Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/TUnit.Core.SourceGenerator.Tests/TestsBase.cs | 133 | // Run generators. Don't forget to use the new compilation rather than the previous one. | COMMENT |
| LOW | …ts/TUnit.Assertions.SourceGenerator.Tests/TestsBase.cs | 127 | // Run generators. Don't forget to use the new compilation rather than the previous one. | COMMENT |
| MEDIUM | .github/workflows/codeql.yml | 58 | # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …t.TestProject/Bugs/4032/NestedAsyncInitializerTests.cs | 7 | /// Regression tests for issue #4032: IAsyncInitializer lifecycle change broke complex test infrastructure orchestration | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/TUnit.Engine/Framework/TestRequestHandler.cs | 8 | internal sealed class TestRequestHandler : IRequestHandler | CODE |