
stephanmisc/toasttoast Docker镜像是将toast测试运行器打包成的容器化应用,基于Node.js环境构建,旨在提供一致、高效的JavaScript/TypeScript测试执行环境。该镜像无需手动安装依赖,可直接运行测试,支持前端(React、Vue等)和后端(Node.js)项目,适合本地开发调试和CI/CD流水线集成,帮助开发者快速验证代码正确性。
*.test.js、*.spec.ts等测试文件,无需手动配置。--watch参数监听文件变更,自动重跑受影响的测试用例。从Docker Hub拉取最新版本镜像:
bashdocker pull stepchowfun/toast:latest
在项目根目录运行默认测试(自动查找测试文件):
bashdocker run --rm -v $(pwd):/app -w /app stepchowfun/toast toast
显式指定测试文件路径或匹配模式:
bash# 运行src目录下所有.test.ts文件 docker run --rm -v $(pwd):/app -w /app stepchowfun/toast toast src/**/*.test.ts # 运行单个测试文件 docker run --rm -v $(pwd):/app -w /app stepchowfun/toast toast tests/utils.spec.js
启动文件监听,代码变更时自动重跑测试:
bashdocker run --rm -v $(pwd):/app -w /app stepchowfun/toast toast --watch src/test
生成HTML格式覆盖率报告并输出到项目coverage目录:
bashdocker run --rm -v $(pwd):/app -w /app stepchowfun/toast toast --coverage --coverage-reporter html
在.github/workflows/test.yml中配置:
yamljobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run tests with toast run: | docker run --rm -v $(pwd):/app -w /app stepchowfun/toast toast --reporter tap > test-results.tap - name: Upload test report uses: actions/upload-artifact@v3 with: name: test-report path: test-results.tap
| 参数 | 说明 | 示例 |
|---|---|---|
--watch | 监听文件变化并自动重跑测试 | toast --watch |
--reporter <format> | 指定报告格式(default/tap/json) | toast --reporter json |
--coverage | 启用代码覆盖率分析 | toast --coverage |
--coverage-reporter <format> | 指定覆盖率报告格式(html/lcov) | toast --coverage --coverage-reporter lcov |
--config <path> | 自定义配置文件路径 | toast --config ./toast.config.js |
--node-env <env> | 设置Node.js环境(默认test) | toast --node-env production |
| 变量名 | 说明 | 默认值 |
|---|---|---|
NODE_ENV | Node.js运行环境 | test |
TOAST_CONFIG | 等效于--config参数,指定配置文件路径 | 无 |
创建toast.config.js自定义测试行为:
javascriptexport default { testMatch: ['**/*.test.{js,ts}', '**/*.spec.{js,ts}'], // 测试文件匹配模式 testIgnore: ['node_modules/**', 'dist/**'], // 排除文件 reporter: 'tap', // 默认报告格式 coverage: { include: ['src/**/*.{js,ts}'], // 覆盖率统计范围 exclude: ['src/**/*.d.ts'], // 排除类型定义文件 reporter: ['html', 'text-summary'] // 覆盖率报告格式 } };
使用自定义配置运行:
bashdocker run --rm -v $(pwd):/app -w /app stepchowfun/toast toast --config toast.config.js
--user $(id -u):$(id -g)指定当前用户ID:
bashdocker run --rm -v $(pwd):/app -w /app --user $(id -u):$(id -g) stepchowfun/toast toast
-w /app)与本地项目目录挂载路径一致,避免测试文件查找失败。.ts测试文件。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务