用途:在本地运行当前仓库的端到端测试,基于 new-e2e 框架与 Pulumi 基础设施。测试位于 test/new-e2e/tests/,通过 dda inv new-e2e-tests.run 执行。
目标解析:invoke 任务会自动在目标前补上 test/new-e2e/,因此 --targets 必须相对于该目录。用户可给出测试目录路径、测试函数名(以 Test 开头)或参数组合。目录如 agent-subcommands/flare 应写为 ./tests/agent-subcommands/flare;函数名需先用 Grep 在 test/new-e2e/tests/ 下定位所属包,再设置 --targets 与 --run;目标不明确时列出候选让用户选择。
基本命令: dda inv new-e2e-tests.run --targets=./tests/<path> [flags]
支持的透传参数:--run <regex> 只运行匹配的测试;--skip <regex> 跳过匹配测试;--keep-stack 测试后保留基础设施以便调试;--configparams <key=value> 覆盖 Pulumi ConfigMap 参数;--agent-image image:tag;--cluster-agent-image image:tag;--stack-name-suffix <suffix> 为栈名加后缀;--verbose / --no-verbose 切换详细输出(默认 verbose);--max-retries <n> 失败重试次数;--flavor <flavor> 包风格;--cache 启用测试缓存(默认关闭)。
执行前需与用户确认完整命令。运行设置 60 分钟超时(基础设施开通可能较慢),因测试耗时较长建议在后台运行;结束后汇总通过/失败测试与有用的错误输出。
前置条件:已安装 pulumi CLI;存在并正确配置 ~/.test_infra_config.yaml。缺失时需告知用户先行配置。
可用测试套件列于 test/new-e2e/tests/,可用 ls test/new-e2e/tests 查看。
限制与已知问题:若测试之前运行过、基础设施处于 Pulumi 未知的异常状态,用同一栈重跑可能出现资源被替换等奇怪错误;可用 --stack-name-suffix(建议用短后缀)换栈名规避,并在日志中识别到该问题后尽早停止执行。
示例: dda inv new-e2e-tests.run --targets=./tests/windows/install-test dda inv new-e2e-tests.run --targets=./tests/agent-platform/tests/upgrade --run TestUpgrade dda inv new-e2e-tests.run --targets=./tests/containers --run TestContainerLinux --keep-stack
使用方式:/run-e2e windows/install-test、/run-e2e windows/install-test --run TestInstall、/run-e2e TestUpgrade、/run-e2e agent-platform --keep-stack。输出:运行前展示完整命令,结束后报告测试结果。