SuperAPI AI 工具集

standalone-test-repro

测试与质量

查看项目

更新于 10-15 21:12

技能介绍

用途:把 dotnet/runtime 仓库中 src/tests 下的单个托管测试,抽取成一个独立的源代码级控制台应用,放在 artifacts/tmp/standalone-test-repro/ 下,用 <CORE_ROOT>/corerun <输出目录>/StandaloneTestRepro.dll 直接运行。产出是可读可改的隔离复现,不是引用原测试程序集的启动器。

适用范围:仅支持能通过 corerun 有意义执行的托管 CoreCLR 测试。若测试主要依赖本机可执行进程、NativeAOT、Mono、浏览器、WASI、Android、iOS、tvOS、MacCatalyst,或依赖 profiler、调试器、COM 服务器、自定义宿主、外部工具、多进程协同、网络服务、凭据、特权配置等,应说明限制而不要生成误导性复现。可复制进复现目录的本地本机库、数据文件、子进程和环境变量是允许的。

使用方式:先读取 src/tests/README.md 等说明文件,确定目标 OS、架构与配置,并复用已有 CORE_ROOT;不要修改 src/tests/ 下文件。输入为 .cmd/.sh 时走 standalone-test-repro-cmd 子技能,输入为完整测试方法名时走 standalone-test-repro-method 子技能;指定场景时由 test-scenario-env 子技能负责生成 .env。抽取前记录影响行为的所有契约:源文件、项目属性、RuntimeHostConfigurationOption、CLRTestEnvironmentVariable 及目标特定批处理/Bash 环境项、前置后置命令、执行参数、期望退出码(运行时测试默认 100)、工作目录与本地资产。复现目录至少包含 StandaloneTestRepro.csproj 与 Program.cs,必要时生成 .env。代码需保留触发失败的形态,去掉 xUnit 与测试框架依赖,断言替换为抛异常的本地检查,入口正常返回 100。

构建与运行:在仓库根目录用引导 SDK 构建到复现目录内的 out 子目录,Windows 用 .\dotnet.cmd build,Unix 用 ./dotnet.sh;在 out 目录用 corerun 运行,需要时加 -e ../.env 或 -p Name=Value。成功一般退出 100。最后验证复现不引用原测试程序集、.env 条目正确、本地文件齐备,并与原测试行为对比;若未能复现,应如实说明。