Skip to content

Conversation

@sharwell
Copy link
Member

@sharwell sharwell commented Dec 1, 2025

  • Added a planner (build/compute-impacted-tests.ps1) that diffs against the PR target branch, detects changed analyzers/code fixes, dependency changes, and touched test files, builds a per-language plan (full vs class-filtered), publishes test-plan.json, and exposes AllTestsFull with a safe fallback to a full matrix on failure.
  • Updated the pipeline template (build/build-and-test.yml) to introduce a PlanTests job, publish the plan artifact, force full runs for C# 6 and the latest project, and gate the coverage stage on AllTestsFull; added a LatestLangVersion parameter.
  • Taught the test template (build/test.yml) to consume the plan, support forced-full runs, skip execution when no classes are selected, use xUnit response files for class filters, avoid coverage on partial runs, and tolerate missing result files when nothing runs.
  • Wired the root pipeline (azure-pipelines.yml) to pass the latest language version parameter.

* Added a planner (build/compute-impacted-tests.ps1) that diffs against
  the PR target branch, detects changed analyzers/code fixes, dependency
  changes, and touched test files, builds a per-language plan (full vs
  class-filtered), publishes test-plan.json, and exposes AllTestsFull
  with a safe fallback to a full matrix on failure.
* Updated the pipeline template (build/build-and-test.yml) to introduce
  a PlanTests job, publish the plan artifact, force full runs for C# 6
  and the latest project, and gate the coverage stage on AllTestsFull;
  added a LatestLangVersion parameter.
* Taught the test template (build/test.yml) to consume the plan, support
  forced-full runs, skip execution when no classes are selected, use
  xUnit response files for class filters, avoid coverage on partial
  runs, and tolerate missing result files when nothing runs.
* Wired the root pipeline (azure-pipelines.yml) to pass the latest
  language version parameter.
* Added build/Run-ImpactedTests.ps1, which builds (unless -NoBuild),
  computes impacted tests via the planner against a target branch
  (default upstream/master), and runs only the needed xUnit test classes
  locally while always exercising C# 6 and the latest suite. Results
  drop under artifacts/test-results, with options for -LangVersions and
  -VerboseLogging.
* Enhanced build/compute-impacted-tests.ps1 to accept -TargetBranch and
  -AssumePullRequest, enabling local diff-based planning without a PR
  pipeline.
* Documented the local selective test workflow in CONTRIBUTING.md,
  including usage examples and options.
* Updated build/Run-ImpactedTests.ps1 to auto-detect the target branch
  when none is provided: it now looks for a git remote pointing at
  DotNetAnalyzers/StyleCopAnalyzers (HTTPS or SSH) and uses
  <remote>/master; otherwise it falls back to origin/master. The
  resolved branch is logged.
* The TargetBranch parameter default is now empty to trigger
  auto-detection, and the help text describes the behavior.
@codecov
Copy link

codecov bot commented Dec 1, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.43%. Comparing base (f4e1e0c) to head (18ada66).
⚠️ Report is 12 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff            @@
##           master    #4049    +/-   ##
========================================
  Coverage   97.42%   97.43%            
========================================
  Files         977      979     +2     
  Lines      114316   114480   +164     
  Branches     3416     3418     +2     
========================================
+ Hits       111376   111540   +164     
  Misses       1944     1944            
  Partials      996      996            
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant