Cargo test无法识别tests目录下测试用例问题求助
解决Cargo无法识别src外tests目录中测试函数的问题
确认目录结构与Cargo规则
Cargo默认将项目根目录下的tests/作为集成测试目录,每个.rs文件会被编译为独立测试crate。确保tests/和src/平级,且tests/types/typed.rs的层级正确。同时,测试函数必须添加#[test]属性,示例:#[test] fn test_typed_logic() { // 测试代码 }检查Cargo.toml的自定义测试配置
若Cargo.toml中存在[[test]]区块,可能覆盖了默认扫描规则。如果手动指定了测试文件路径,会导致其他测试被忽略。要么删除该区块让Cargo自动扫描tests/下所有文件,要么明确添加目标测试文件的配置:[[test]] name = "typed_tests" path = "tests/types/typed.rs"确保跨模块引用的正确性
集成测试是独立crate,若typed.rs需要引用src中的代码,需通过项目crate名引入,比如你的项目名为my_project,则:use my_project::types::*;验证命令执行路径
必须在项目根目录下执行cargo test,否则Cargo无法定位到tests/目录。手动指定测试目标排查
若上述步骤无效,可尝试直接指定测试目标来验证:# 若未自定义[[test]],用文件名作为测试目标名 cargo test --test typed # 若自定义了name,用配置中的name cargo test --test typed_tests
内容的提问来源于stack exchange,提问作者DesperateEngineer
相关产品推荐
相关产品推荐

