Resolve a Runtime Test Method
This is the method-name resolution sub-skill for
../standalone-test-repro/SKILL.md.
Resolve the exact source test, owning project, and test invocation, then
continue with the parent's shared extraction steps.
Input
Accept a fully qualified method name copied from a CI failure, for example:
Namespace.TypeName.MethodName
It may include an assembly prefix, xUnit display-name arguments, quotes,
parentheses, nested-type notation, or surrounding CI log text. The surrounding
request may also name a scenario such as jitstress1; preserve it separately
from the method identifier for the parent workflow.
Resolution
- Normalize the identifier:
- Trim quotes, Markdown formatting, leading result labels, and trailing
punctuation.
- Preserve xUnit argument text for theory-case resolution.
- Remove an assembly prefix only after verifying it is an assembly name.
- Never reduce the identifier to only the final method segment.
- Do not treat a separately supplied scenario as part of the method name.
- Parse the longest plausible namespace/type prefix and method name. Account
for nested types (
+ in reflection names and . in C# source) and generic
arity suffixes.
- Search C# sources under
src/tests/ for the exact method declaration and
confirm its containing type and namespace. Prefer symbol information when
available; otherwise combine targeted searches for method, type, and
namespace.
- Find the owning
.csproj by its explicit or evaluated Compile items.
Account for wildcard includes and merged projects such as JIT regression
assemblies.
- Inspect the project and source for:
[Fact], [Theory], custom attributes, or TestEntryPoint
- Static or instance invocation and constructor requirements
- Fixtures, setup, cleanup, and disposal
- Async and generic return or argument handling
- Conditional compilation and platform guards
- Test data and the specific failing theory row
- Target-specific environment items and batch or Bash pre/post commands
- If display-name arguments identify a theory row, reproduce exactly that
row. If not, generate invocations for all locally resolvable rows and label
them. Use the
ask_user tool when runtime-discovered data or ambiguity
prevents a faithful choice.
- If multiple source methods still match, present the concrete candidates with
ask_user; do not guess.
Resolution is complete only when the exact source method, owning project, and
required invocation semantics are known. Return any requested scenario
unchanged for canonicalization by the test-scenario-env skill.
1---2name: standalone-test-repro-method3description: Resolve a CoreCLR runtime test from a fully qualified method name for the standalone-test-repro workflow. Use for xUnit display names and methods in merged or multi-test assemblies, with or without a named test scenario. Continue with the parent standalone-test-repro skill after resolution.4---56# Resolve a Runtime Test Method78This is the method-name resolution sub-skill for9[`../standalone-test-repro/SKILL.md`](../standalone-test-repro/SKILL.md).10Resolve the exact source test, owning project, and test invocation, then11continue with the parent's shared extraction steps.1213## Input1415Accept a fully qualified method name copied from a CI failure, for example:1617```text18Namespace.TypeName.MethodName19```2021It may include an assembly prefix, xUnit display-name arguments, quotes,22parentheses, nested-type notation, or surrounding CI log text. The surrounding23request may also name a scenario such as `jitstress1`; preserve it separately24from the method identifier for the parent workflow.2526## Resolution27281. Normalize the identifier:29 - Trim quotes, Markdown formatting, leading result labels, and trailing30 punctuation.31 - Preserve xUnit argument text for theory-case resolution.32 - Remove an assembly prefix only after verifying it is an assembly name.33 - Never reduce the identifier to only the final method segment.34 - Do not treat a separately supplied scenario as part of the method name.352. Parse the longest plausible namespace/type prefix and method name. Account36 for nested types (`+` in reflection names and `.` in C# source) and generic37 arity suffixes.383. Search C# sources under `src/tests/` for the exact method declaration and39 confirm its containing type and namespace. Prefer symbol information when40 available; otherwise combine targeted searches for method, type, and41 namespace.424. Find the owning `.csproj` by its explicit or evaluated `Compile` items.43 Account for wildcard includes and merged projects such as JIT regression44 assemblies.455. Inspect the project and source for:46 - `[Fact]`, `[Theory]`, custom attributes, or `TestEntryPoint`47 - Static or instance invocation and constructor requirements48 - Fixtures, setup, cleanup, and disposal49 - Async and generic return or argument handling50 - Conditional compilation and platform guards51 - Test data and the specific failing theory row52 - Target-specific environment items and batch or Bash pre/post commands536. If display-name arguments identify a theory row, reproduce exactly that54 row. If not, generate invocations for all locally resolvable rows and label55 them. Use the `ask_user` tool when runtime-discovered data or ambiguity56 prevents a faithful choice.577. If multiple source methods still match, present the concrete candidates with58 `ask_user`; do not guess.5960Resolution is complete only when the exact source method, owning project, and61required invocation semantics are known. Return any requested scenario62unchanged for canonicalization by the `test-scenario-env` skill.