Cargo not 运行 在顶级文件中测试

Cargo not running tests in top-level file

我对 Cargo 如何找到 运行 的测试感到很困惑。

我创建了一个 Cargo 项目,它为我添加了一个 main.rs。如果我在其中添加 #[test] 函数,它们会被发现并且 运行 和 cargo test。如果我将 foo.rs 文件添加为 main.rs 的兄弟文件并在其中添加测试,则找不到它们并且 运行.

我错过了什么微妙之处?我是否必须以某种方式教 Cargo 有关新文件的知识?

Cargo 不仅会编译恰好在您的源目录中的任何文件。为了让 Cargo 找到一个文件,它必须在 main.rs/lib.rs 或某个子模块中作为模块被引用。

例如,在您的 main.rs:

mod foo;

就是这样。