6 个版本
0.2.5 | 2023 年 12 月 21 日 |
---|---|
0.2.4 | 2023 年 12 月 21 日 |
0.1.0 | 2023 年 5 月 7 日 |
#300 in Cargo 插件
12KB
196 行
导出 cargo 编译器工件(测试、基准测试)
动机
导出像测试和基准测试可执行文件这样的二级工件相当具有挑战性。这些工件可能因不同原因而非常有价值
- 打包测试可执行文件到容器中以在以后的平台上运行
- 比较和分析性能基准的汇编
对于最终工件,我们有 target//(release|debug)/{crate-name}
,但测试和基准测试可执行文件包含哈希如 target/release/deps/app-25de5d28a523d3c2
。此外,每次编译器选项更改时,它都会发生变化。因此,像 find
和 cp
这样的方法在提取此类工件时效果不佳。
幸运的是,编译器提供服务消息(cargo build --message-format=json
),这允许列出编译器生成的所有工件。
安装
$ cargo install cargo-export
使用
-
将所有测试二进制文件导出到
target/tests
目录$ cargo export target/tests -- test
在底层,此命令将运行
cargo test --no-run --message-format=json
并将所有生成的二进制文件复制到target/tests
目录。 -
将所有基准测试二进制文件导出到
target/bench
目录$ cargo export target/bench -- bench
-
将所有基准二进制文件导出到
target/bench
目录,并为每个可执行文件添加后缀-main
$ cargo export target/bench -t main -- bench
-
使用特定功能构建和导出基准测试
$ cargo export target/bench -- bench --feature=my-feature
-
使用夜间构建和导出基准测试
$ cargo +nightly export target/bench -- bench
依赖项
~1–1.8MB
~34K SLoC