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

时间:2016-07-09 00:03:51

标签: rust

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

1 个答案:

答案 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.tomlCargo.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() {
    }
}