如何查看cargo test调用的命令以调试失败的测试?
查看Cargo Test实际调用的命令,用于调试测试
要获取cargo test背后实际执行的命令,有几种直接的实用方式:
用
--verbose参数输出完整命令
运行cargo test --verbose,输出里会包含编译测试二进制、运行测试的全部指令。重点关注以Running开头的行,后面跟着的就是直接执行测试程序的精确命令,比如:Running `target/debug/deps/my_crate-abc1234567890 --nocapture`这条命令可以直接复制到调试器中使用。
直接打印编译测试目标的命令
如果只需要编译阶段的具体命令,用cargo rustc指定测试目标即可:cargo rustc --test <测试目标名> -- --print=cmd若不清楚测试目标名,默认是你的包名,也可以先运行
cargo test -- --list列出所有测试项来确认。针对单个测试生成精准命令
调试单个失败测试时,结合--exact和--verbose能定位到特定测试的执行命令:cargo test my_failing_test --exact --verbose输出里的
Running行就是仅运行该测试的命令,复制后可直接用调试器(如lldb或gdb)启动调试。
拿到命令后,只需把测试二进制路径放到调试器里,比如用lldb的示例:
lldb -- target/debug/deps/my_crate-abc1234567890 --nocapture --exact my_failing_test
之后就能设置断点、逐步调试定位问题了。
内容的提问来源于stack exchange,提问作者A. K.
相关产品推荐
相关产品推荐

