我有一个 Rust 项目,它使用一个相当大的框架。编译和宏扩展需要很长时间。如果我对代码进行微小的更改,则在“货物测试”实际执行之前需要一分钟或更长时间。
是否可以在同一个板条箱中创建子项目或子模块并仅测试模块中的代码(假设模块外部的代码不存在依赖关系)?
您可能对“货物工作空间”感兴趣(https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html)。
本质上,您不是将代码拆分为多个mod,而是将其拆分为多个 crate。这些板条箱可以通过“路径依赖”相互依赖。例如,您可以有类似的内容:
[dependencies]
my_helper_crate = { path = "path/to/crate" }
Run Code Online (Sandbox Code Playgroud)
这本书对此有更多详细信息,但是使用工作区的一个很好的功能是您的 crate 可以有单独的Cargo.tomls,但共享 s Cargo.lock,因此您不会遇到与 crate 版本不兼容的问题。
通过这种设置,您可以构建一个 crate,而无需构建其余的 crate,这样您就可以减少开发反馈循环。
然而,如果你有crate_awhich dependents crate_b,构建crate_a仍然需要构建crate_b,那么实际上没有任何解决办法。好处主要是针对依赖图的叶子。
| 归档时间: |
|
| 查看次数: |
666 次 |
| 最近记录: |