Appearance
命令行界面
基本用法
bash
anvil [options] [filter]选项说明
| 短选项 | 长选项 | 说明 | 默认值 |
|---|---|---|---|
| - | --config | 配置文件路径(YAML格式) | - |
-d | --test-dir | 测试目录 | tests |
-b | --build-dir | 构建目录(.o 文件位置) | build |
-j | --jobs | 并行工作线程数 | CPU 核心数 |
-o | --out | 报告输出文件路径 | - |
-f | --format | 输出格式 | junit |
-c | --no-clean | 保留生成的 C 文件和测试二进制 | false |
-C | --no-check | 跳过构建目录验证 | false |
-v | --version | 显示版本号 | - |
| - | --coverage | 启用代码覆盖率收集 | false |
| - | --coverage-format | 覆盖率输出格式 | lcov |
| - | --coverage-dir | 覆盖率输出目录 | coverage |
| - | --coverage-exclude | 排除模式(逗号分隔) | - |
过滤器格式
使用过滤器可以只运行部分测试:
| 格式 | 说明 | 示例 |
|---|---|---|
<directory> | 运行目录下所有测试 | anvil feature-1 |
<test_file> | 运行文件中所有测试 | anvil test_math |
<test_file>/<function> | 运行指定测试函数 | anvil test_math/test_add |
<dir>/<test_file>/<function> | 三段式指定测试 | anvil core/test_util/test_foo |
常用命令示例
运行所有测试
bash
anvil运行特定目录的测试
bash
anvil feature-1运行特定测试函数
bash
anvil test_math/test_add生成 JUnit 报告
bash
anvil -o report.xml启用代码覆盖率
bash
anvil --coverage生成 HTML 覆盖率报告
bash
anvil --coverage --coverage-format=html指定覆盖率输出和排除模式
bash
anvil --coverage --coverage-dir=cov --coverage-exclude="*/tests/*,*/mocks/*"单线程执行(便于调试)
bash
anvil -j 1保留生成文件(调试用)
bash
anvil -c test_math退出码
| 退出码 | 说明 |
|---|---|
| 0 | 所有测试通过 |
| 1 | 存在失败的测试 |
| 2 | 运行时错误(编译失败等) |
日志文件
Anvil 会生成两个日志文件:
| 文件 | 内容 |
|---|---|
anvil-compile.log | 编译阶段的命令和错误输出 |
anvil-test.log | 测试执行的详细输出(包括 stdout/stderr) |
日志格式示例
=== test_module::test_case_name ===
Status: passed
Duration: 1.234ms
Output:
[debug] initializing...
[debug] test complete临时文件
| 目录 | 用途 |
|---|---|
/tmp/anvil-mocks/ | Mock 代码生成的 C 源文件 |
/tmp/anvil-executables/ | 编译后的测试二进制文件 |
/tmp/anvil-wrappers/ | 测试包装器代码 |
使用 -c / --no-clean 选项可保留这些文件用于调试。