2017-07-02 103 views
0

我对Cargo如何找到测试运行感到困惑。货物没有在顶层文件中运行测试

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

我错过了多少微妙之处?我不知何故必须教货物有关新文件?

回答

3

Cargo将不会编译源目录中的任何文件。为了货物找到一个文件,它必须从根目录引用为一个模块。

例如,在你的main.rs

mod foo; 

就是这样。

+0

你会习惯性地把单元测试放在他们自己的文件中,并且有prod模式吗?或者只是把测试放在被测试的文件中? – tenpn

+2

将测试放在与测试相同的文件中更为常见。 –