8000 Comparing v1.18.37...v1.19.0 · thomhurst/TUnit · GitHub
[go: up one dir, main page]

Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: thomhurst/TUnit
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.18.37
Choose a base ref
...
head repository: thomhurst/TUnit
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.19.0
Choose a head ref
  • 3 commits
  • 156 files changed
  • 2 contributors

Commits on Mar 6, 2026

  1. chore(deps): update tunit to 1.18.37 (#5094)

    Co-authored-by: Renovate Bot <renovate@whitesourcesoftware.com>
    thomhurst and renovate-bot authored Mar 6, 2026
    Configuration menu
    Copy the full SHA
    8cc6e87 View commit details
    Browse the repository at this point in the history
  2. fix: improve CreateTestVariant API and fix void/ValueTask return types (

    #5095)
    
    * fix: improve CreateTestVariant API and fix void/ValueTask return types (#5093)
    
    - Fix CreateTestVariant for void and ValueTask-returning test methods by
      adding proper expression tree handling (AsTask() wrapping for ValueTask)
    - Extract shared ExpressionHelper to eliminate 5-way code duplication across
      TestRegistry, AotTestDataCollector, and ReflectionTestDataCollector
    - Return TestVariantInfo (TestId + DisplayName) instead of Task
    - Add IsVariant property to ITestDependencies for infinite recursion guard
    - Rename 'arguments' to 'methodArguments' and add 'classArguments' parameter
    - Use IReadOnlyDictionary for properties parameter
    - Add argument count validation against method parameter count
    - Hoist Compile()/GetMethod("Invoke") out of per-invocation lambda
    - Remove async/await Task.FromResult anti-pattern in metadata creation
    - Replace illusory GetAttributesOptimized with List<T>.ToArray()
    
    * fix: address code review feedback
    
    - Add IsVariant guard to CreateTestVariant_FromTaskMethod and
      CreateTestVariant_FromValueTaskMethod to prevent infinite recursion
    - Add default interface implementation for IsVariant on .NET 6+
      (netstandard2.0 keeps abstract member for compatibility)
    - Document FindMethodCall ordering assumption in ExpressionHelper
    
    * refactor: address second review round
    
    - Convert TestVariantInfo from sealed class to sealed record
    - Add comment explaining why CreateTestVariant bypasses the queue
    - Update public API snapshots for class→record change
    
    * refactor: address third review round
    
    - Move IsVariant from interface member to extension method (non-breaking)
    - Combine null check for _sessionId and _testBuilderPipeline
    - Add classArguments integration test with parameterized test class
    - Update public API snapshots for all 4 target frameworks
    
    * refactor: address round 4 review feedback
    
    - Use TryGetValue for StateBag.Items["AttemptNumber"] (defensive)
    - Add comment explaining IsForExecution: false intent
    
    * test: add Task<T> return type integration test for CreateTestVariant
    
    Covers the Convert(MethodCallExpression) expression tree path end-to-end.
    ValueTask<T> cannot be tested as the source generator doesn't support it.
    void is only reachable via AddDynamicTest, not CreateTestVariant.
    Both are covered by ExpressionHelper unit tests.
    
    * fix: use net472-compatible ValueTask APIs in ExpressionHelperTests
    
    ValueTask.FromResult and ValueTask.CompletedTask are .NET 5+ only.
    Use default(ValueTask) and new ValueTask<int>(42) instead.
    thomhurst authored Mar 6, 2026
    Configuration menu
    Copy the full SHA
    58fce45 View commit details
    Browse the repository at this point in the history
  3. build: replace MinVer with GitVersion as single version source (#5098)

    * build: replace MinVer with GitVersion as single version source
    
    Replace the dual MinVer/GitVersion versioning system with GitVersion.MsBuild
    as the single source of truth for all builds. This eliminates the CI race
    condition where pack and test builds produced different AssemblyVersions,
    causing CS1705 errors with strong-named assemblies.
    
    Changes:
    - Replace MinVer GlobalPackageReference with GitVersion.MsBuild 6.6.0
    - Remove MinVerTagPrefix, MinVerSkip, and IsPackTarget properties
    - Remove SetAssemblyVersionFromMinVer target from Library.targets
    - Remove IsPackTarget condition from TUnit.Engine.csproj
    - Simplify PackTUnitFilesModule to only override PackageVersion for beta packages
    - Disable GitVersion code generation in Pipeline project (name conflict with ModularPipelines)
    - Update gitversion.tool to 6.6.0
    
    +semver:minor commit messages now work out of the box via GitVersion's
    ContinuousDeployment mode with Mainline strategy.
    
    * fix: resolve CI failures from GitVersion.MsBuild migration
    
    - Disable GenerateGitVersionInformation globally (avoids generated class
      conflicting with snapshot tests and ModularPipelines type names)
    - Add fetch-depth: 0 to cloudshop-example.yml and codeql.yml workflows
      (GitVersion requires full git history, not shallow clones)
    - Remove redundant per-project GenerateGitVersionInformation from TUnit.Pipeline
    
    * fix: scrub version numbers in source generator snapshot tests
    
    The GeneratedCode attribute includes the assembly version, which changes
    with every build when using GitVersion. Add version scrubbing to prevent
    snapshot tests from breaking on version changes.
    
    * fix: pass PackageVersion for all packages in PackTUnitFilesModule
    
    GitVersion.MsBuild and the GitVersion CLI can produce different versions
    on PR branches (e.g., different pre-release labels). The pipeline reads
    the version from the CLI (GenerateVersionModule) for downstream operations
    like template install and nuget test. The .nupkg must use the same version.
    thomhurst authored Mar 6, 2026
    Configuration menu
    Copy the full SHA
    d66766a View commit details
    Browse the repository at this point in the history
Loading
0