在 Rust 手册的第 11 章第 3 节 (11.3( 中,它讨论了将集成测试引入项目的过程。简而言之,为"src"创建一个名为"tests"的同级目录,并在"tests"目录中的文件中找到您的测试代码。书中示例中的文件内容如下所示:
use adder;
#[test]
fn it_adds_two() {
assert_eq!(4, adder::add_two(2));
}
'src/lib.rs' 文件在模块中声明了其代码:
mod adder {
...
}
这对我不起作用。我不得不删除"lib.rs"中的模块声明,并将其添加到集成测试文件中的"use adder;"声明之前:
extern crate adder;
所以,我很困惑。语言是否发生了变化,文档还没有跟上?库('src/lib.rs'(中包含的代码是否不允许组织成模块?如果有人能指出我 Rust 中代码组织的全面摘要,那就太好了。谢谢。
将src/lib.rs
变成:
pub mod adder {
...
}
或者,如果您在名为adder.rs
的文件中有一个模块,那么只需pub mod adder;
需要注意的重要一点是,每个文件都是一个模块,需要pub
关键字才能从 crate 中公开模块。
然后在集成测试文件(在/tests/
下(中执行以下操作:
use <cratename>::adder::<whatever you want to import or *>;
fn main() {
...
}