Add eval coverage for dotnet-test/writing-mstest-tests#828
Conversation
Enrich the ServiceRegistry collection/null/reference scenario with deterministic file_contains assertions for the modern MSTest assertion APIs Assert.IsNull, Assert.AreSame, Assert.Contains, Assert.DoesNotContain, Assert.IsEmpty, and Assert.IsNotEmpty. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Skill Coverage Report
|
There was a problem hiding this comment.
Pull request overview
This PR updates the dotnet-test plugin’s evaluation scenario for writing-mstest-tests to deterministically cover several modern MSTest assertion APIs by refining the scenario prompt, adding file_contains checks for specific assertions, and tightening the rubric accordingly.
Changes:
- Refines the Goal 7 prompt to explicitly request behaviors that map to the targeted MSTest assertions.
- Adds
file_containsassertions to require the generated test file to include specificAssert.*APIs. - Updates the rubric to explicitly call out the required assertion APIs and expected usage.
Show a summary per file
| File | Description |
|---|---|
| tests/dotnet-test/writing-mstest-tests/eval.yaml | Tightens the Goal 7 scenario prompt/rubric and adds deterministic file assertions to enforce coverage of modern MSTest assertion APIs. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 1/1 changed files
- Comments generated: 1
…nario Address PR review: file_contains is a case-sensitive substring check, so the Assert.Contains and Assert.DoesNotContain value checks would also pass for CollectionAssert.* and StringAssert.* helpers. Add file_not_contains guards to keep the scenario a deterministic check for the modern Assert.* API. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/evaluate |
|
❌ Evaluation failed. View workflow run |
|
👋 @Evangelink — this PR has 1 unresolved review thread(s). When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the |
Skill Validation Results
[1]
Model: claude-opus-4.6 | Judge: claude-opus-4.6 🔍 Full Results - additional metrics and failure investigation steps
▶ Sessions Visualisation -- interactive replay of all evaluation sessions |
Summary
Adds eval-test coverage for six previously-uncovered modern MSTest assertion APIs taught in
plugins/dotnet-test/skills/writing-mstest-tests/SKILL.md.The existing "Write tests with collection, null, and reference assertions" scenario (Goal 7) already ships the ideal
ServiceRegistryfixture — a class whose members naturally elicit each assertion — but lacked deterministic assertions tying the generated test code to these tokens. This PR enriches that scenario's prompt, adds deterministicfile_containsassertions, and sharpens the rubric.Now-covered CodePattern points
Assert.IsNull(SKILL.md ~L154) — resolving an unregistered service returns nullAssert.AreSame(~L154) — resolving a registered service returns the same instanceAssert.Contains(~L178) —GetAll()includes a registered serviceAssert.DoesNotContain(~L178) — service absent afterRemoveAssert.IsEmpty(~L178) —GetAll()empty before registrationAssert.IsNotEmpty(~L178) —GetAll()not empty after registrationVerification
eng/skill-coverage/Measure-SkillCoverage.ps1 -PluginName dotnet-test -SkillName writing-mstest-tests -Format Json→"uncovered": [](all six targets covered, no regressions).dotnet run --project eng/skill-validator/src/SkillValidator.csproj -- check --plugin ./plugins/dotnet-test→ ✅ All checks passed (only pre-existing token-budget warnings).Only
eval.yamlchanged; no SKILL.md or other skills touched.Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com