[Blazor] Add E2E testing skill - #68955
Conversation
There was a problem hiding this comment.
🟡 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-testingskill with end-to-end workflow guidance (scope selection, build prerequisites, targeted test runs). - Documents an interactive debugging flow using
Components.TestServerplus 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.
PureWeen
left a comment
There was a problem hiding this comment.
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.
PureWeen
left a comment
There was a problem hiding this comment.
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.
|
alright, this looks good now. I rebased the current head onto 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. |
Summary
blazor-e2e-testingdeveloper skill from the larger Blazor ES-module prototype (historical commit7528e5d735)src/Components/AGENTS.mdthe single source of truth for bounded local E2E selection and orderingThis PR contains developer tooling documentation only. It does not change framework/runtime behavior, product code, tests, samples, pipelines, or package manifests.
Validation
.github/skills/blazor-e2e-testing/SKILL.mdandsrc/Components/AGENTS.mdThe repo-local .NET SDK is not installed in this fresh worktree, so no product build or test was run for this documentation-only change.