在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;
放入>
然后在集成测试文件中(在/tests/
下,请执行:
use <cratename>::adder::<whatever you want to import or *>;
fn main() {
...
}