Rust项目的推荐目录结构是什么?

jol*_*son 19 rust

应该在哪里放置源,示例,文档,单元测试,集成测试,许可证,基准测试

Fra*_*gné 34

Cargo是Rust的官方软件包管理器,定义了一些关于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
Run Code Online (Sandbox Code Playgroud)
  • Cargo.tomlCargo.lock存储在项目的根目录中.
  • 源代码进入src目录.
  • 默认库文件是src/lib.rs.
  • 默认的可执行文件是src/main.rs.
  • 其他可执行文件可以放入src/bin/*.rs.
  • 集成测试进入tests目录(单元测试进入他们正在测试的每个文件中).
  • 示例可执行文件放在examples目录中.
  • 基准测试进入benches目录.

这些在清单描述中有更详细的解释.

通过遵循此标准布局,您将能够使用Cargo的命令轻松构建,运行和测试项目.运行cargo new以设置新的可执行项目或cargo new --lib设置新的库项目.

此外,库的文档通常写在文档注释中(注释///在任何项之前开始,或//!记录父项).此外,许可证通常放在根目录下.

如上所述,单元测试与它们正在测试的功能编写在同一模块中.通常,它们被放入内部模块中.它看起来像这样(这是Cargo为新库创建的cargo new --lib):

#[cfg(test)]
mod tests {
    #[test]
    fn it_works() {
    }
}
Run Code Online (Sandbox Code Playgroud)