1.8 KiB
1.8 KiB
单元测试
cargo test
# 查看输出
cargo test -- --nocapture
覆盖率(cargo-llvm-cov)
安装工具:
rustup component add llvm-tools-preview
cargo install cargo-llvm-cov --locked
统计行覆盖率并要求 >=90%:
./scripts/coverage.sh
# 或
cargo llvm-cov --fail-under-lines 90
默认会复用现有插桩产物,不会先 clean。需要强制全量重编译时:
COVERAGE_FORCE_CLEAN=1 ./scripts/coverage.sh
说明:
- 默认行为适合本地重复确认覆盖率,避免每次都重编译整套插桩目标;
- 默认还会设置
RPKI_SKIP_HEAVY_SCRIPT_REPLAY_TESTS=1,跳过会拉起 shell replay pipeline 的重型集成测试,避免 coverage 期间额外触发target/release构建; - 默认还会设置
RPKI_SKIP_HEAVY_BLACKBOX_TESTS=1,跳过更慢的 blackbox CLI / CIR record 脚本测试,进一步降低日常 coverage 成本; - 默认还会设置
RPKI_SKIP_HEAVY_CRYPTO_TESTS=1,跳过需要大量 OpenSSL 生成证书/CRL 的重型密码学测试,进一步压缩日常 coverage 时长; - 如需把这批脚本回放测试也纳入 coverage,可显式关闭该开关:
RPKI_SKIP_HEAVY_SCRIPT_REPLAY_TESTS=0 ./scripts/coverage.sh
如需连同第二批 blackbox 测试一起跑:
RPKI_SKIP_HEAVY_BLACKBOX_TESTS=0 ./scripts/coverage.sh
如需连同重型 OpenSSL 证书路径测试一起跑:
RPKI_SKIP_HEAVY_CRYPTO_TESTS=0 ./scripts/coverage.sh
- replay 脚本现在也支持通过环境变量注入现成二进制,避免找不到二进制时自动
cargo build --release:RPKI_BINCIR_MATERIALIZE_BINCIR_EXTRACT_INPUTS_BINCCR_TO_COMPARE_VIEWS_BIN
COVERAGE_FORCE_CLEAN=1适合需要完全从零重建插桩目标时使用。