应该在哪里放置源,示例,文档,单元测试,集成测试,许可证,基准等?
答案 0 :(得分:33)
Rust的官方软件包经理Cargo defines some conventions regarding the layout of a Rust crate:
. ├── Cargo.lock ├── Cargo.toml ├── benches │ └── large-input.rs ├── examples │ └── simple.rs ├── src │ ├── bin │ │ └── another_executable.rs │ ├── lib.rs │ └── main.rs └── tests └── some-integration-tests.rs
Cargo.toml
和Cargo.lock
存储在项目的根目录中。- 源代码位于
src
目录。- 默认库文件为
src/lib.rs
。- 默认可执行文件为
src/main.rs
。- 其他可执行文件可以放在
中src/bin/*.rs
。- 集成测试进入
tests
目录(单元测试会进入他们正在测试的每个文件中。)- 示例可执行文件位于
examples
目录。- 基准测试位于
benches
目录。manifest description中详细解释了这些内容。
通过遵循此标准布局,您将能够使用Cargo的命令轻松构建,运行和测试您的项目。运行cargo new
以设置新的可执行项目或cargo new --lib
以设置新的库项目。
此外,库的文档通常写在文档注释中(在任何项之前以///
开头的注释,或者//!
来记录父项)。此外,许可证通常放在根目录。
如上所述,单元测试与他们正在测试的功能编写在同一模块中。通常,他们会被放入内部模块中。它看起来像这样(这是Cargo为具有cargo new --lib
的新库生成的内容:
#[cfg(test)]
mod tests {
#[test]
fn it_works() {
}
}