Skip to content

[Blazor] Add E2E testing skill - #68955

Open
javiercn wants to merge 3 commits into
mainfrom
javiercn/blazor-e2e-skill
Open

[Blazor] Add E2E testing skill#68955
javiercn wants to merge 3 commits into
mainfrom
javiercn/blazor-e2e-skill

Conversation

@javiercn

@javiercn javiercn commented Sep 1, 2026

Copy link
Copy Markdown
Member

Summary

  • extract the blazor-e2e-testing developer skill from the larger Blazor ES-module prototype (historical commit 7528e5d735)
  • retain the skill's semantic routing between permanent Selenium coverage and temporary sample/browser validation
  • make src/Components/AGENTS.md the single source of truth for bounded local E2E selection and ordering
  • document shell-safe exact method filters, class-boundary filters, grouped runs for major changes, executed-test verification, and final-revision replay

This PR contains developer tooling documentation only. It does not change framework/runtime behavior, product code, tests, samples, pipelines, or package manifests.

Validation

  • verified skill frontmatter and both relative documentation links
  • verified the diff contains only .github/skills/blazor-e2e-testing/SKILL.md and src/Components/AGENTS.md
  • checked that all test commands are single-line and shell-safe
  • checked that method filters are exact, class filters include a boundary separator, and grouped filters combine only bounded selections

The repo-local .NET SDK is not installed in this fresh worktree, so no product build or test was run for this documentation-only change.

Copilot AI lite review requested due to automatic review settings September 1, 2026 13:48
@javiercn
javiercn requested review from a team and wtgodbe as code owners September 1, 2026 13:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds a new developer Skill document for running and debugging Blazor Components Selenium E2E tests in this repo, extracted and updated from prior prototype guidance.

Changes:

  • Introduces a blazor-e2e-testing skill with end-to-end workflow guidance (scope selection, build prerequisites, targeted test runs).
  • Documents an interactive debugging flow using Components.TestServer plus Playwright MCP browser tools.
  • Adds guidance for handling quarantined tests and disciplined validation boundaries.
File summaries
File Description
.github/skills/blazor-e2e-testing/SKILL.md New skill documentation for Components E2E test scope/build/run/debug/quarantine workflow
Review details

Suppressed comments (1)

.github/skills/blazor-e2e-testing/SKILL.md:77

  • The manual-debug URL hardcodes a port (5019) and base path (/subdir), but Components.TestServer typically binds to an OS-assigned port (and even when deterministic ports are enabled, the port depends on how many child hosts are created). This can send readers to the wrong endpoint.
3. Open `http://127.0.0.1:5019/subdir` and select the scenario used by the test. If the fixture launches a different host, use the URL and route from that fixture instead.
  • Files reviewed: 1/1 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/skills/blazor-e2e-testing/SKILL.md Outdated

@PureWeen PureWeen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Adversarial review

Three command-level issues reached consensus:

  • ⚠️ The PowerShell continuation examples can be hazardous when followed from a Unix shell, potentially launching an unfiltered E2E run before parsing fails.
  • ⚠️ The contains-based method/class filters can select similarly named tests outside the intended focused scope.
  • ⚠️ The setup delegation omits the repository's mandatory SDK activation prerequisite.

Test coverage: This is a documentation-only change, so no product tests changed. The review focused on whether the documented commands reliably execute the intended bounded test set.

Prior review status: The existing inline restore comment and suppressed fixed-port concern apply to superseded text and were not repeated. No current-line thread covered these findings.

Methodology: 3 independent reviewers with adversarial consensus. Each retained finding reached 2/3 agreement after dispute.

Comment thread .github/skills/blazor-e2e-testing/SKILL.md Outdated
Comment thread .github/skills/blazor-e2e-testing/SKILL.md Outdated
Comment thread .github/skills/blazor-e2e-testing/SKILL.md Outdated
Comment thread .github/skills/blazor-e2e-testing/SKILL.md Outdated

@PureWeen PureWeen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think this should stay a skill, but become a much thinner one.

src/Components/AGENTS.md already owns the durable Components setup, dependency-aware E2E build, targeted --filter and --no-build loop, debugging guidance, and the prohibition on running the full suite locally. Repeating the method/class filters, grouped-run commands, and failure workflow here creates a second policy copy that can drift.

The part the instruction file does not replace is the skill's semantic USE FOR/DO NOT USE routing. That matters before an agent has opened a src/Components file, and when it needs to distinguish permanent Selenium coverage from validate-blazor-feature sample/browser validation.

I tried three anonymous designs across seven scenarios with two runs each: the current full skill, a thin skill plus AGENTS.md, and AGENTS.md alone. The scenarios covered focused methods, class boundaries, major grouped validation, final-revision replay, temporary browser validation, unit-test routing, and a non-Components negative control. A separate blind scorer ranked the thin design first at 116/126, versus 113/126 for the full skill and 111/126 for instructions only. The sample is small, so I would treat that as directional, not statistical. The useful comparison was thin skill versus instructions only: routing improved, while coverage selection and full-suite avoidance stayed equal.

Can we move the durable selection and ordering rules into a named src/Components/AGENTS.md section, including shell-safe commands and the requirement that every planned group pass on the final revision, then reduce this file to the frontmatter plus pointers to that section and validate-blazor-feature? That keeps the semantic routing without creating another source of truth.

Prepared with GitHub Copilot and reviewed by a human.

@javiercn
javiercn requested a review from a team as a code owner September 4, 2026 12:04
@PureWeen

PureWeen commented Sep 4, 2026

Copy link
Copy Markdown
Member

alright, this looks good now. I rebased the current head onto main locally, and the only conflict was the introductory sentence under Running E2E Tests. Preserving both sides produced clean combined guidance: the thin skill, bounded filters, and final-revision replay remain intact alongside the current Components instructions.

Once the branch is rebased with that resolution and the required checks pass, this looks good to merge.

Prepared with GitHub Copilot and reviewed by a human.

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.

3 participants