You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找Rust项目测试二进制文件?测试函数调试问题咨询

解决测试相关的两个问题

1. 测试二进制文件的位置 & 更便捷的测试运行方式

你提到的直接调用测试二进制文件的方法确实可行,但其实Cargo已经提供了更省心的操作方式,不用手动找文件路径。先回答你的问题:默认情况下,测试二进制文件会生成在target/debug/deps/目录下,文件名是你的项目名称加上一串随机哈希值(比如my_project-abcdef123456)。不过更推荐直接用Cargo命令来运行特定测试,步骤往下看。

2. 让println!生效并运行指定的test_handle_igmp测试

你的测试带有#[cfg(feature = "proto-igmp")]标记,这意味着只有启用proto-igmp这个feature时,该测试才会被编译。同时默认情况下,Rust测试会捕获所有标准输出,导致println!的内容看不到。所以你需要同时满足三个条件:启用feature、指定测试名、禁用输出捕获。

直接运行这条命令就能搞定所有需求:

cargo test test_handle_igmp --features proto-igmp -- --nocapture

我拆解一下每个部分的作用:

  • test_handle_igmp:告诉Cargo只运行名字匹配这个函数的测试(如果有重名测试,可以加上--exact参数来精确匹配)
  • --features proto-igmp:启用测试依赖的feature,确保test_handle_igmp被编译并包含在测试集中
  • -- --nocapture:--用来区分Cargo自身的参数和传递给测试二进制的参数,--nocapture则禁用输出捕获,让println!的内容直接显示在终端里

如果非要手动运行测试二进制文件,步骤是这样的:

  1. 先编译测试并启用feature:
    cargo build --tests --features proto-igmp
    
  2. 到target/debug/deps/目录下找到对应的测试二进制文件
  3. 运行它并指定测试名和禁用捕获:
    ./target/debug/deps/your_project_hash --test test_handle_igmp --nocapture
    

但显然第一种方法更简单省心~

内容的提问来源于stack exchange,提问作者Poperton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 20:38:15