Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
28bbfab
feat: implement AssertionMethodGenerator for dynamic assertion genera…
thomhurst Sep 12, 2025
bfedcc1
feat: add assertion method generator tests and extensions for various…
thomhurst Sep 12, 2025
eefc0cd
feat: add verified tests for character, enum, path, and string assert…
thomhurst Sep 12, 2025
83db312
feat: refactor assertion extension namespaces and add verified tests …
thomhurst Sep 12, 2025
9a6fb84
feat: add global setup for tests and implement path assertion extensions
thomhurst Sep 12, 2025
d6ecef4
feat: add URI assertion extensions and corresponding verified tests
thomhurst Sep 12, 2025
f2a858f
Remove verified files
thomhurst Sep 12, 2025
befce90
feat: add path assertion extensions and verified tests for path asser…
thomhurst Sep 12, 2025
59924be
feat: add source generator DLL reference to project file
thomhurst Sep 12, 2025
1fcf4b1
feat: enhance assertion extensions with new methods for Guid, Stream,…
thomhurst Sep 12, 2025
a3ed5b1
feat: add assertion extensions for CultureInfo, DayOfWeek, Encoding, …
thomhurst Sep 12, 2025
6f8a274
fix: update public API tests and accept new assertion generator snaps…
thomhurst Sep 12, 2025
75aae6e
feat: add IsDefined and IsNotDefined assertion extensions for enums
thomhurst Sep 12, 2025
7c73c96
feat: convert all CreateAssertion attributes to generic syntax
thomhurst Sep 13, 2025
3b5c5ec
feat: update CreateAssertion attributes to use generic syntax across …
thomhurst Sep 13, 2025
f4d4852
feat: enable overwriting of existing NuGet packages during local copy
thomhurst Sep 13, 2025
8b559fc
feat: filter NuGet package copy to only include TUnit packages
thomhurst Sep 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .serena/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/cache
Binary file modified .serena/cache/csharp/document_symbols_cache_v23-06-25.pkl
Binary file not shown.
191 changes: 96 additions & 95 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -1,97 +1,98 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<GlobalPackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
</ItemGroup>
<ItemGroup>
<PackageVersion Include="AutoFixture" Version="4.18.1" />
<PackageVersion Include="BenchmarkDotNet" Version="0.15.2" />
<PackageVersion Include="BenchmarkDotNet.Annotations" Version="0.15.2" />
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
<PackageVersion Include="CliWrap" Version="3.9.0" />
<PackageVersion Include="EnumerableAsyncProcessor" Version="3.8.4" />
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="12.0.0" />
<PackageVersion Include="FSharp.Core" Version="9.0.303" />
<PackageVersion Include="Humanizer" Version="2.14.1" />
<PackageVersion Include="MessagePack" Version="3.1.4" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.9" />
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="9.0.9" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="9.0.9" />
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.0" />
<PackageVersion Include="Microsoft.Build.Utilities.Core" Version="17.14.8" />
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.7.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.7.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Analyzer.Testing" Version="1.1.2" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.CodeFix.Testing" Version="1.1.2" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.CodeRefactoring.Testing" Version="1.1.2" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.12.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="8.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.SourceGenerators.Testing" Version="1.1.2" />
<PackageVersion Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="4.7.0" />
<PackageVersion Include="Microsoft.CSharp" Version="4.7.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="9.0.9" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.9" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageVersion Include="Microsoft.Playwright" Version="1.55.0" />
<PackageVersion Include="Microsoft.TemplateEngine.Authoring.TemplateVerifier" Version="9.0.305" />
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="17.14.2" />
<PackageVersion Include="Microsoft.Testing.Extensions.CrashDump" Version="1.8.4" />
<PackageVersion Include="Microsoft.Testing.Extensions.HangDump" Version="1.8.4" />
<PackageVersion Include="Microsoft.Testing.Extensions.TrxReport" Version="1.8.4" />
<PackageVersion Include="Microsoft.Testing.Extensions.TrxReport.Abstractions" Version="1.8.4" />
<PackageVersion Include="Microsoft.Testing.Platform" Version="1.8.4" />
<PackageVersion Include="Microsoft.Testing.Platform.MSBuild" Version="1.4.3" />
<PackageVersion Include="System.Threading.Channels" Version="9.0.0" />
<PackageVersion Include="ModularPipelines.DotNet" Version="2.47.8" />
<PackageVersion Include="ModularPipelines.Git" Version="2.47.8" />
<PackageVersion Include="ModularPipelines.GitHub" Version="2.47.8" />
<PackageVersion Include="MSTest.TestAdapter" Version="3.10.4" />
<PackageVersion Include="MSTest.TestFramework" Version="3.10.4" />
<PackageVersion Include="NSubstitute" Version="5.3.0" />
<PackageVersion Include="NuGet.Protocol" Version="6.14.0" />
<PackageVersion Include="NUnit" Version="4.4.0" />
<PackageVersion Include="NUnit.Analyzers" Version="4.10.0" />
<PackageVersion Include="NUnit3TestAdapter" Version="5.1.0" />
<PackageVersion Include="OneOf" Version="3.0.271" />
<PackageVersion Include="OneOf.SourceGenerator" Version="3.0.271" />
<PackageVersion Include="Polly" Version="8.6.3" />
<PackageVersion Include="Polyfill" Version="8.8.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<PackageVersion Include="PublicApiGenerator" Version="11.4.6" />
<PackageVersion Include="RandomDataGenerator.Net" Version="1.0.19.1" />
<PackageVersion Include="Shouldly" Version="4.3.0" />
<PackageVersion Include="Sourcy.DotNet" Version="0.7.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<PackageVersion Include="Sourcy.Git" Version="0.7.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<PackageVersion Include="StreamJsonRpc" Version="2.22.11" />
<PackageVersion Include="System.Collections.Immutable" Version="9.0.0" />
<PackageVersion Include="System.CommandLine" Version="2.0.0-rc.1.25451.107" />
<PackageVersion Include="System.Text.Json" Version="9.0.0" />
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.6.3" />
<PackageVersion Include="Testcontainers.Kafka" Version="4.7.0" />
<PackageVersion Include="Testcontainers.PostgreSql" Version="4.7.0" />
<PackageVersion Include="Testcontainers.Redis" Version="4.7.0" />
<PackageVersion Include="trxparser" Version="0.5.0" />
<PackageVersion Include="Verify" Version="30.11.0" />
<PackageVersion Include="Verify.NUnit" Version="30.12.0" />
<PackageVersion Include="TUnit" Version="0.57.65" />
<PackageVersion Include="TUnit.Core" Version="0.57.65" />
<PackageVersion Include="TUnit.Assertions" Version="0.57.65" />
<PackageVersion Include="Vogen" Version="8.0.1" />
<PackageVersion Include="xunit" Version="2.9.3" />
<PackageVersion Include="xunit.assert" Version="2.9.3" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.4" />
<PackageVersion Include="xunit.v3.assert" Version="3.0.1" />
<PackageVersion Include="xunit.v3.extensibility.core" Version="3.0.1" />
</ItemGroup>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<GlobalPackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
</ItemGroup>
<ItemGroup>
<PackageVersion Include="AutoFixture" Version="4.18.1" />
<PackageVersion Include="BenchmarkDotNet" Version="0.15.2" />
<PackageVersion Include="BenchmarkDotNet.Annotations" Version="0.15.2" />
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
<PackageVersion Include="CliWrap" Version="3.9.0" />
<PackageVersion Include="EnumerableAsyncProcessor" Version="3.8.4" />
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="12.0.0" />
<PackageVersion Include="FSharp.Core" Version="9.0.303" />
<PackageVersion Include="Humanizer" Version="2.14.1" />
<PackageVersion Include="MessagePack" Version="3.1.4" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.9" />
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="9.0.9" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="9.0.9" />
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.0" />
<PackageVersion Include="Microsoft.Build.Utilities.Core" Version="17.14.8" />
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.7.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.7.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Analyzer.Testing" Version="1.1.2" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.CodeFix.Testing" Version="1.1.2" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.CodeRefactoring.Testing" Version="1.1.2" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.12.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="8.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.SourceGenerators.Testing" Version="1.1.2" />
<PackageVersion Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="4.7.0" />
<PackageVersion Include="Microsoft.CSharp" Version="4.7.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="9.0.9" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.9" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageVersion Include="Microsoft.Playwright" Version="1.55.0" />
<PackageVersion Include="Microsoft.TemplateEngine.Authoring.TemplateVerifier" Version="9.0.305" />
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="17.14.2" />
<PackageVersion Include="Microsoft.Testing.Extensions.CrashDump" Version="1.8.4" />
<PackageVersion Include="Microsoft.Testing.Extensions.HangDump" Version="1.8.4" />
<PackageVersion Include="Microsoft.Testing.Extensions.TrxReport" Version="1.8.4" />
<PackageVersion Include="Microsoft.Testing.Extensions.TrxReport.Abstractions" Version="1.8.4" />
<PackageVersion Include="Microsoft.Testing.Platform" Version="1.8.4" />
<PackageVersion Include="Microsoft.Testing.Platform.MSBuild" Version="1.4.3" />
<PackageVersion Include="System.Threading.Channels" Version="9.0.0" />
<PackageVersion Include="ModularPipelines.DotNet" Version="2.47.8" />
<PackageVersion Include="ModularPipelines.Git" Version="2.47.8" />
<PackageVersion Include="ModularPipelines.GitHub" Version="2.47.8" />
<PackageVersion Include="MSTest.TestAdapter" Version="3.10.4" />
<PackageVersion Include="MSTest.TestFramework" Version="3.10.4" />
<PackageVersion Include="NSubstitute" Version="5.3.0" />
<PackageVersion Include="NuGet.Protocol" Version="6.14.0" />
<PackageVersion Include="NUnit" Version="4.4.0" />
<PackageVersion Include="NUnit.Analyzers" Version="4.10.0" />
<PackageVersion Include="NUnit3TestAdapter" Version="5.1.0" />
<PackageVersion Include="OneOf" Version="3.0.271" />
<PackageVersion Include="OneOf.SourceGenerator" Version="3.0.271" />
<PackageVersion Include="Polly" Version="8.6.3" />
<PackageVersion Include="Polyfill" Version="8.8.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<PackageVersion Include="PublicApiGenerator" Version="11.4.6" />
<PackageVersion Include="RandomDataGenerator.Net" Version="1.0.19.1" />
<PackageVersion Include="Shouldly" Version="4.3.0" />
<PackageVersion Include="Sourcy.DotNet" Version="0.7.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<PackageVersion Include="Sourcy.Git" Version="0.7.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<PackageVersion Include="StreamJsonRpc" Version="2.22.11" />
<PackageVersion Include="System.Collections.Immutable" Version="9.0.0" />
<PackageVersion Include="System.CommandLine" Version="2.0.0-rc.1.25451.107" />
<PackageVersion Include="System.Text.Json" Version="9.0.0" />
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.6.3" />
<PackageVersion Include="Testcontainers.Kafka" Version="4.7.0" />
<PackageVersion Include="Testcontainers.PostgreSql" Version="4.7.0" />
<PackageVersion Include="Testcontainers.Redis" Version="4.7.0" />
<PackageVersion Include="trxparser" Version="0.5.0" />
<PackageVersion Include="Verify" Version="30.12.0" />
<PackageVersion Include="Verify.NUnit" Version="30.12.0" />
<PackageVersion Include="TUnit" Version="0.57.65" />
<PackageVersion Include="TUnit.Core" Version="0.57.65" />
<PackageVersion Include="TUnit.Assertions" Version="0.57.65" />
<PackageVersion Include="Verify.TUnit" Version="30.12.0" />
<PackageVersion Include="Vogen" Version="8.0.1" />
<PackageVersion Include="xunit" Version="2.9.3" />
<PackageVersion Include="xunit.assert" Version="2.9.3" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.4" />
<PackageVersion Include="xunit.v3.assert" Version="3.0.1" />
<PackageVersion Include="xunit.v3.extensibility.core" Version="3.0.1" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion TUnit.Analyzers/DependsOnConflictAnalyzer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ private void AnalyzeSymbol(SymbolAnalysisContext context)
{
var method = (IMethodSymbol) context.Symbol;

AttributeData[] dependsOnAttributes = GetDependsOnAttributes(method).Concat(GetDependsOnAttributes(method.ReceiverType ?? method.ContainingType)).ToArray();
var dependsOnAttributes = GetDependsOnAttributes(method).Concat(GetDependsOnAttributes(method.ReceiverType ?? method.ContainingType)).ToArray();

var dependencies = GetDependencies(context, new Chain(method), method, dependsOnAttributes);

Expand Down
2 changes: 1 addition & 1 deletion TUnit.Analyzers/Migrators/XUnitMigrationAnalyzer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ private void AnalyzeSyntax(SyntaxNodeAnalysisContext context)

var members = namedTypeSymbol.GetMembers();

ITypeSymbol[] types = members.OfType<IPropertySymbol>().Where(x => x.Type.ContainingNamespace?.Name.StartsWith("Xunit") is true).Select(x => x.Type)
var types = members.OfType<IPropertySymbol>().Where(x => x.Type.ContainingNamespace?.Name.StartsWith("Xunit") is true).Select(x => x.Type)
.Concat(members.OfType<IMethodSymbol>().Where(x => x.ReturnType.ContainingNamespace?.Name.StartsWith("Xunit") is true).Select(x => x.ReturnType))
.Concat(members.OfType<IFieldSymbol>().Where(x => x.Type.ContainingNamespace?.Name.StartsWith("Xunit") is true).Select(x => x.Type))
.ToArray();
Expand Down
2 changes: 1 addition & 1 deletion TUnit.Analyzers/TestDataAnalyzer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ private static bool IsInAttributeClass(INamedTypeSymbol? typeSymbol)

private ImmutableArray<ITypeSymbol> GetTypes(ImmutableArray<IParameterSymbol> parameters, IPropertySymbol? propertySymbol)
{
IEnumerable<ITypeSymbol?> types = parameters.Select(x => x.Type).Concat(new[] { propertySymbol?.Type }).Where(t => t != null);
var types = parameters.Select(x => x.Type).Concat(new[] { propertySymbol?.Type }).Where(t => t != null);

return types.OfType<ITypeSymbol>().ToImmutableArray().WithoutCancellationTokenParameter();
}
Expand Down
Loading
Loading