Skip to content

Conversation

@samtrion
Copy link
Member

@samtrion samtrion commented Dec 24, 2025

Summary by CodeRabbit

  • Chores
    • Centralized .NET target framework definitions for improved build consistency and maintainability.
    • Updated project dependencies, including new package versions and removal of obsolete test SDK references.
    • Updated editor configuration for XML file formatting.

✏️ Tip: You can customize this high-level summary in your review settings.

@samtrion samtrion self-assigned this Dec 24, 2025
@samtrion samtrion requested a review from a team as a code owner December 24, 2025 12:12
@samtrion samtrion requested review from Spacemonkay and removed request for a team December 24, 2025 12:12
@samtrion samtrion added the type:feature Indicates a new feature or enhancement to be added. label Dec 24, 2025
@coderabbitai
Copy link

coderabbitai bot commented Dec 24, 2025

Walkthrough

Refactoring centralizes .NET target framework definitions via new MSBuild properties in Directory.Build.props. Multiple project files now reference these properties instead of hard-coded framework values. Test project dependencies updated: Microsoft.NET.Test.Sdk removed from MSTest and XUnit projects, replaced with Microsoft.Extensions.DependencyModel in NUnit test projects. Editor config extended XML line length.

Changes

Cohort / File(s) Summary
Build Configuration
.editorconfig
Increased max line length from default to 160 for XML project files
Directory.Build.props
Directory.Packages.props
Source Project Framework Targeting
src/NetEvolve.Extensions.MSTest/NetEvolve.Extensions.MSTest.csproj
Migrated from single TargetFramework to TargetFrameworks using $(NetEvolve_ProjectTargetFrameworks) property
src/NetEvolve.Extensions.NUnit/NetEvolve.Extensions.NUnit.csproj
src/NetEvolve.Extensions.TUnit/NetEvolve.Extensions.TUnit.csproj
src/NetEvolve.Extensions.XUnit.V3/NetEvolve.Extensions.XUnit.V3.csproj
Test Projects - MSTest Dependencies
tests/NetEvolve.Extensions.MSTest.Tests.PublicApi/NetEvolve.Extensions.MSTest.Tests.PublicApi.csproj, tests/NetEvolve.Extensions.MSTest.Tests.Unit/NetEvolve.Extensions.MSTest.Tests.Unit.csproj
Removed Microsoft.NET.Test.Sdk PackageReference from both projects
Test Projects - NUnit Dependencies
tests/NetEvolve.Extensions.NUnit.Tests.PublicApi/NetEvolve.Extensions.NUnit.Tests.PublicApi.csproj, tests/NetEvolve.Extensions.NUnit.Tests.Unit/NetEvolve.Extensions.NUnit.Tests.Unit.csproj
Swapped Microsoft.NET.Test.Sdk for Microsoft.Extensions.DependencyModel in both projects
Test Projects - XUnit Dependencies
tests/NetEvolve.Extensions.XUnit.V3.Tests.PublicApi/NetEvolve.Extensions.XUnit.V3.Tests.PublicApi.csproj, tests/NetEvolve.Extensions.XUnit.V3.Tests.Unit/NetEvolve.Extensions.XUnit.V3.Tests.Unit.csproj
Removed Microsoft.NET.Test.Sdk PackageReference from both projects

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 Frameworks now dance in harmony's song,
Centralized properties, where they belong,
From hard-coded chains to variables free,
Dependencies shuffled with surgical spree! 🎯✨

Pre-merge checks

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: migrating from Microsoft.NET.Test.Sdk to Microsoft Testing Platform across multiple test projects.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link

codecov bot commented Dec 24, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.54%. Comparing base (f09611f) to head (68f4c58).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #943   +/-   ##
=======================================
  Coverage   83.54%   83.54%           
=======================================
  Files          84       84           
  Lines         231      231           
  Branches       17       17           
=======================================
  Hits          193      193           
  Misses         32       32           
  Partials        6        6           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@samtrion samtrion added the state:ready for merge Indicates that a pull request has been reviewed and approved, and is ready to be merged into the mai label Dec 24, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
src/NetEvolve.Extensions.NUnit/NetEvolve.Extensions.NUnit.csproj (1)

1-1: BOM character detected at start of file.

The AI summary indicates a hidden BOM or non-printable character at the beginning of this file. While UTF-8 BOM is acceptable for .csproj files per the editorconfig, verify this is intentional.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 8215545 and 68f4c58.

📒 Files selected for processing (13)
  • .editorconfig
  • Directory.Build.props
  • Directory.Packages.props
  • src/NetEvolve.Extensions.MSTest/NetEvolve.Extensions.MSTest.csproj
  • src/NetEvolve.Extensions.NUnit/NetEvolve.Extensions.NUnit.csproj
  • src/NetEvolve.Extensions.TUnit/NetEvolve.Extensions.TUnit.csproj
  • src/NetEvolve.Extensions.XUnit.V3/NetEvolve.Extensions.XUnit.V3.csproj
  • tests/NetEvolve.Extensions.MSTest.Tests.PublicApi/NetEvolve.Extensions.MSTest.Tests.PublicApi.csproj
  • tests/NetEvolve.Extensions.MSTest.Tests.Unit/NetEvolve.Extensions.MSTest.Tests.Unit.csproj
  • tests/NetEvolve.Extensions.NUnit.Tests.PublicApi/NetEvolve.Extensions.NUnit.Tests.PublicApi.csproj
  • tests/NetEvolve.Extensions.NUnit.Tests.Unit/NetEvolve.Extensions.NUnit.Tests.Unit.csproj
  • tests/NetEvolve.Extensions.XUnit.V3.Tests.PublicApi/NetEvolve.Extensions.XUnit.V3.Tests.PublicApi.csproj
  • tests/NetEvolve.Extensions.XUnit.V3.Tests.Unit/NetEvolve.Extensions.XUnit.V3.Tests.Unit.csproj
💤 Files with no reviewable changes (4)
  • tests/NetEvolve.Extensions.XUnit.V3.Tests.PublicApi/NetEvolve.Extensions.XUnit.V3.Tests.PublicApi.csproj
  • tests/NetEvolve.Extensions.MSTest.Tests.PublicApi/NetEvolve.Extensions.MSTest.Tests.PublicApi.csproj
  • tests/NetEvolve.Extensions.XUnit.V3.Tests.Unit/NetEvolve.Extensions.XUnit.V3.Tests.Unit.csproj
  • tests/NetEvolve.Extensions.MSTest.Tests.Unit/NetEvolve.Extensions.MSTest.Tests.Unit.csproj
🔇 Additional comments (9)
.editorconfig (1)

47-47: LGTM! Reasonable adjustment for XML project files.

The increased line length accommodates longer property references and package definitions in csproj files, which aligns with the centralized target framework approach in this PR.

tests/NetEvolve.Extensions.NUnit.Tests.PublicApi/NetEvolve.Extensions.NUnit.Tests.PublicApi.csproj (1)

10-10: Verify test execution after dependency change.

Replacing Microsoft.NET.Test.Sdk with Microsoft.Extensions.DependencyModel aligns with the Microsoft Testing Platform migration. Ensure that test discovery and execution work correctly with the new dependency.

tests/NetEvolve.Extensions.NUnit.Tests.Unit/NetEvolve.Extensions.NUnit.Tests.Unit.csproj (1)

9-9: Verify test execution after dependency change.

Consistent with the Microsoft Testing Platform migration pattern. Ensure test discovery and execution function correctly with Microsoft.Extensions.DependencyModel instead of Microsoft.NET.Test.Sdk.

src/NetEvolve.Extensions.TUnit/NetEvolve.Extensions.TUnit.csproj (1)

3-3: LGTM! Centralized target framework reference.

The switch from hard-coded frameworks to $(NetEvolve_ProjectTargetFrameworks) aligns with the PR's centralization strategy. Based on the context, this should expand to include netstandard2.0 and the LTS frameworks.

src/NetEvolve.Extensions.XUnit.V3/NetEvolve.Extensions.XUnit.V3.csproj (1)

3-3: LGTM! Centralized target framework reference.

Consistent with the project-wide strategy to centralize target framework definitions using $(NetEvolve_ProjectTargetFrameworks).

src/NetEvolve.Extensions.MSTest/NetEvolve.Extensions.MSTest.csproj (1)

3-3: Centralized property definition verified.

The NetEvolve_ProjectTargetFrameworks property is correctly defined in Directory.Build.props (line 18) with the framework list: netstandard2.0;net8.0;net9.0;net10.0. Usage is consistent across all extension projects.

src/NetEvolve.Extensions.NUnit/NetEvolve.Extensions.NUnit.csproj (1)

3-3: Use of NetEvolve_LTSTargetFrameworks is intentional and appropriate.

This NUnit library correctly uses $(NetEvolve_LTSTargetFrameworks) (net8.0;net9.0;net10.0), which is the intended property for test-related projects. The NetEvolve_ProjectTargetFrameworks includes netstandard2.0 for broader library compatibility, while NetEvolve_TestTargetFrameworks and NetEvolve_LTSTargetFrameworks both target LTS versions only. The choice is consistent with the framework configuration strategy and appropriate for a test library.

Directory.Packages.props (1)

17-17: Clarify the purpose of Microsoft.Extensions.DependencyModel in this change.

Version 10.0.1 is the current latest release (Dec 9, 2025), so the version is correct. However, Microsoft.Extensions.DependencyModel is a runtime library for reading dependency context (.deps.json), not a test runner or test host. It does not replace Microsoft.NET.Test.Sdk, which is required for test discovery and execution. If this package is being added, clarify whether it is needed for specific test logic (e.g., runtime dependency inspection) or if this is part of a broader testing platform migration strategy.

Likely an incorrect or invalid review comment.

Directory.Build.props (1)

17-19: The centralized framework property approach is well-structured and maintainable. The inclusion of net10.0 is correct — it's an LTS release officially supported through November 2028. The property composition using variable references enables effective centralized management across projects.

@samtrion samtrion merged commit c5ea9c8 into main Dec 24, 2025
14 checks passed
@samtrion samtrion deleted the feature/switched-to-microsoft-testing-platform branch December 24, 2025 12:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state:ready for merge Indicates that a pull request has been reviewed and approved, and is ready to be merged into the mai type:feature Indicates a new feature or enhancement to be added.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants