Skip to content

dotnet-test: fix writing-mstest-tests eval timeout and skill activation - #863

Merged
Evangelink merged 2 commits into
mainfrom
dev/amauryleve/fuzzy-invention
Jul 7, 2026
Merged

dotnet-test: fix writing-mstest-tests eval timeout and skill activation#863
Evangelink merged 2 commits into
mainfrom
dev/amauryleve/fuzzy-invention

Conversation

@Evangelink

@Evangelink Evangelink commented Jul 7, 2026

Copy link
Copy Markdown
Member

Summary

Two fixes for the dotnet-test/writing-mstest-tests eval.

1. Timeout (eval.yaml)

The "Use comparison assertions for boundary testing" scenario chronically hit its 240s wall-clock timeout. Raised timeout: 240360, matching the other code-generation scenarios in this file and following eng/skill-validator/src/docs/InvestigatingResults.md guidance.

2. Skill activation (SKILL.md description)

Three scenarios showed plugin-arm skill non-activation:

  • Fix swapped Assert.AreEqual arguments (not activated, no headroom)
  • Modernize legacy test patterns (isolated ✅ / plugin ⚠️)
  • Use proper type assertions instead of casts (isolated ✅ / plugin ⚠️)

Root cause is sibling-skill competition, not menu-budget truncation — the plugin arm loads only dotnet-test (13.3k < 15k char budget), so descriptions aren't cut. The prompts use audit/review phrasing ("review these tests/assertions") that routes the model to test-anti-patterns/assertion-quality when all 20 skills are present.

Fix: tuned the frontmatter description (per InvestigatingResults.md §5) to claim the scenario keywords — added "review" (Modernize scenario) and "swapped/reversed Assert.AreEqual args (Expected/Actual backwards)" matching the swapped-args prompt's symptom wording. Change is budget-neutral (still ≤ 1,024 chars, validated by check) and keeps every assertion keyword the other passing scenarios depend on.

Validation

  • skill-validator check --plugin plugins/dotnet-test → ✅ All checks passed (20 skills, 10 agents, 1 plugin).

…enario

The 'Use comparison assertions for boundary testing' scenario chronically hit its 240s wall-clock timeout. Raise it to 360s to match the other code-generation scenarios in this eval file, per InvestigatingResults.md timeout guidance.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 7, 2026 07:10
@Evangelink

Copy link
Copy Markdown
Member Author

/evaluate

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.

Pull request overview

Raises the per-scenario evaluation timeout for a flaky/slow-running MSTest code-generation scenario in the dotnet-test plugin’s writing-mstest-tests test suite to reduce wall-clock timeouts during evaluation runs.

Changes:

  • Increased the timeout for the “Use comparison assertions for boundary testing” scenario from 240s to 360s.
Show a summary per file
File Description
tests/dotnet-test/writing-mstest-tests/eval.yaml Bumps a single scenario timeout to 360s to better accommodate slower code-generation runs and avoid assertion failures caused by timeouts.

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: 0

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Skill Validation Results

Skill Scenario Quality Skills Loaded Overfit Verdict
writing-mstest-tests Write unit tests for a service class 4.3/5 → 4.0/5 🔴 ✅ writing-mstest-tests; tools: skill, glob 🟡 0.30
writing-mstest-tests Write data-driven tests for a calculator 4.0/5 → 5.0/5 🟢 ✅ writing-mstest-tests; tools: skill / ✅ writing-mstest-tests; tools: skill, glob 🟡 0.30
writing-mstest-tests Write async tests with cancellation 3.0/5 → 5.0/5 🟢 ✅ writing-mstest-tests; tools: skill / ✅ writing-mstest-tests; tools: report_intent, skill 🟡 0.30
writing-mstest-tests Fix swapped Assert.AreEqual arguments 5.0/5 → 5.0/5 ⚠️ NOT ACTIVATED 🟡 0.30 [1]
writing-mstest-tests Modernize legacy test patterns 4.3/5 → 5.0/5 🟢 ✅ writing-mstest-tests; tools: skill / ⚠️ NOT ACTIVATED 🟡 0.30 [2]
writing-mstest-tests Replace ExpectedException with Assert.Throws 3.0/5 → 3.7/5 🟢 ✅ writing-mstest-tests; tools: skill, report_intent / ✅ writing-mstest-tests; tools: report_intent, skill 🟡 0.30 [3]
writing-mstest-tests Use proper collection assertions 3.0/5 → 5.0/5 🟢 ✅ writing-mstest-tests; tools: skill, report_intent / ✅ writing-mstest-tests; tools: report_intent, skill 🟡 0.30
writing-mstest-tests Use proper type assertions instead of casts 4.0/5 → 4.7/5 🟢 ✅ writing-mstest-tests; tools: skill / ⚠️ NOT ACTIVATED 🟡 0.30 [4]
writing-mstest-tests Set up test lifecycle correctly 2.3/5 → 4.0/5 🟢 ✅ writing-mstest-tests; tools: skill, report_intent, view / ✅ writing-mstest-tests; tools: report_intent, skill 🟡 0.30
writing-mstest-tests Use DynamicData with ValueTuples over object arrays 3.0/5 → 3.7/5 🟢 ✅ writing-mstest-tests; tools: report_intent, skill 🟡 0.30 [5]
writing-mstest-tests Use string assertions for format validation 4.0/5 → 4.0/5 ✅ writing-mstest-tests; tools: skill, bash, edit, view / ✅ writing-mstest-tests; tools: skill, view, glob, bash, edit 🟡 0.30 [6]
writing-mstest-tests Use comparison assertions for boundary testing 2.7/5 → 4.3/5 🟢 ✅ writing-mstest-tests; tools: skill / ✅ writing-mstest-tests; tools: report_intent, skill 🟡 0.30
writing-mstest-tests Write tests with collection, null, and reference assertions 4.0/5 → 3.7/5 🔴 ✅ writing-mstest-tests; tools: skill, glob / ✅ writing-mstest-tests; tools: skill 🟡 0.30
writing-mstest-tests Configure conditional execution, retry, and cleanup 3.0/5 → 4.7/5 🟢 ✅ writing-mstest-tests; tools: report_intent, skill 🟡 0.30
writing-mstest-tests Configure test parallelization and MSTest.Sdk project 3.0/5 → 5.0/5 🟢 ✅ writing-mstest-tests; tools: skill 🟡 0.30

[1] (Plugin) Quality unchanged but weighted score is -2.3% due to: tokens (12838 → 17538)
[2] ⚠️ High run-to-run variance (CV=109%) — consider re-running with --runs 5
[3] ⚠️ High run-to-run variance (CV=188%) — consider re-running with --runs 5
[4] ⚠️ High run-to-run variance (CV=58%) — consider re-running with --runs 5
[5] ⚠️ High run-to-run variance (CV=257%) — consider re-running with --runs 5
[6] ⚠️ High run-to-run variance (CV=72%) — consider re-running with --runs 5

Model: claude-opus-4.6 | Judge: claude-opus-4.6

🔍 Full Results - additional metrics and failure investigation steps

To investigate failures, paste this to your AI coding agent:

For PR 863 in dotnet/skills, download eval artifacts with gh run download 28848341441 --repo dotnet/skills --pattern "skill-validator-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/3a8b551074a0c292b188084df52ae3b943a027aa/eng/skill-validator/src/docs/InvestigatingResults.md and follow it to analyze the results.json files. Diagnose each failure, suggest fixes to the eval.yaml and skill content, and tell me what to fix first.

▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions

@github-actions github-actions Bot added the waiting-on-review PR state label label Jul 7, 2026
…ed-args scenarios

Three writing-mstest-tests eval scenarios showed plugin-arm skill non-activation because their audit/review-style prompts routed to sibling skills (test-anti-patterns, assertion-quality). Tune the frontmatter description (budget-neutral, still <=1024 chars) to claim the scenario keywords: add 'review' (Modernize legacy test patterns) and 'swapped/reversed Assert.AreEqual args (Expected/Actual backwards)' matching the swapped-args prompt's symptom wording, while keeping every assertion keyword the other scenarios rely on.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@Evangelink Evangelink changed the title dotnet-test: raise timeout for boundary comparison assertions eval scenario dotnet-test: fix writing-mstest-tests eval timeout and skill activation Jul 7, 2026
@Evangelink

Copy link
Copy Markdown
Member Author

/evaluate

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Skill Validation Results

Skill Scenario Quality Skills Loaded Overfit Verdict
writing-mstest-tests Write unit tests for a service class 4.0/5 → 4.3/5 🟢 ✅ writing-mstest-tests; tools: skill, glob 🟡 0.33 [1]
writing-mstest-tests Write data-driven tests for a calculator 3.7/5 → 5.0/5 🟢 ✅ writing-mstest-tests; tools: skill, glob 🟡 0.33
writing-mstest-tests Write async tests with cancellation 3.0/5 → 5.0/5 🟢 ✅ writing-mstest-tests; tools: skill 🟡 0.33
writing-mstest-tests Fix swapped Assert.AreEqual arguments 5.0/5 → 5.0/5 ⚠️ NOT ACTIVATED 🟡 0.33 [2]
writing-mstest-tests Modernize legacy test patterns 4.3/5 → 5.0/5 🟢 ✅ writing-mstest-tests; tools: skill / ⚠️ NOT ACTIVATED 🟡 0.33 [3]
writing-mstest-tests Replace ExpectedException with Assert.Throws 3.0/5 → 3.7/5 🟢 ✅ writing-mstest-tests; tools: skill / ✅ writing-mstest-tests; tools: report_intent, skill 🟡 0.33 [4]
writing-mstest-tests Use proper collection assertions 3.0/5 → 5.0/5 🟢 ✅ writing-mstest-tests; tools: skill / ✅ writing-mstest-tests; tools: report_intent, skill 🟡 0.33
writing-mstest-tests Use proper type assertions instead of casts 3.7/5 → 4.7/5 🟢 ✅ writing-mstest-tests; tools: skill 🟡 0.33 [5]
writing-mstest-tests Set up test lifecycle correctly 2.0/5 → 4.0/5 🟢 ✅ writing-mstest-tests; tools: skill, report_intent, view / ✅ writing-mstest-tests; tools: report_intent, skill, view 🟡 0.33
writing-mstest-tests Use DynamicData with ValueTuples over object arrays 3.0/5 → 3.7/5 🟢 ✅ writing-mstest-tests; tools: skill, report_intent 🟡 0.33 [6]
writing-mstest-tests Use string assertions for format validation 4.0/5 → 4.7/5 🟢 ✅ writing-mstest-tests; tools: skill, view, bash, edit, glob / ✅ writing-mstest-tests; tools: skill, view, bash, edit 🟡 0.33
writing-mstest-tests Use comparison assertions for boundary testing 2.0/5 → 4.0/5 🟢 ✅ writing-mstest-tests; tools: skill / ✅ writing-mstest-tests; tools: report_intent, skill 🟡 0.33
writing-mstest-tests Write tests with collection, null, and reference assertions 4.0/5 → 4.0/5 ✅ writing-mstest-tests; tools: skill, glob 🟡 0.33
writing-mstest-tests Configure conditional execution, retry, and cleanup 2.7/5 → 4.7/5 🟢 ✅ writing-mstest-tests; tools: report_intent, skill 🟡 0.33
writing-mstest-tests Configure test parallelization and MSTest.Sdk project 3.3/5 → 5.0/5 🟢 ✅ writing-mstest-tests; tools: skill 🟡 0.33

[1] ⚠️ High run-to-run variance (CV=229%) — consider re-running with --runs 5
[2] (Plugin) Quality unchanged but weighted score is -2.2% due to: tokens (12850 → 17553)
[3] ⚠️ High run-to-run variance (CV=89%) — consider re-running with --runs 5
[4] ⚠️ High run-to-run variance (CV=169%) — consider re-running with --runs 5
[5] ⚠️ High run-to-run variance (CV=266%) — consider re-running with --runs 5
[6] ⚠️ High run-to-run variance (CV=320%) — consider re-running with --runs 5

Model: claude-opus-4.6 | Judge: claude-opus-4.6

🔍 Full Results - additional metrics and failure investigation steps

To investigate failures, paste this to your AI coding agent:

For PR 863 in dotnet/skills, download eval artifacts with gh run download 28850318187 --repo dotnet/skills --pattern "skill-validator-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/eba42880e271c3327039d8f9cf2ca61493efb9d5/eng/skill-validator/src/docs/InvestigatingResults.md and follow it to analyze the results.json files. Diagnose each failure, suggest fixes to the eval.yaml and skill content, and tell me what to fix first.

▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

✅ Evaluation passed for eba4288. cc @dotnet/dotnet-testing — please review.

@Evangelink
Evangelink merged commit e558acb into main Jul 7, 2026
35 of 37 checks passed
@Evangelink
Evangelink deleted the dev/amauryleve/fuzzy-invention branch July 7, 2026 11:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-on-review PR state label

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants