gpt4 book ai didi

rust - 我可以只测试单个模块中的代码吗?

转载 作者:行者123 更新时间:2023-12-05 01:24:59 26 4
gpt4 key购买 nike

我有一个使用相当大框架的 Rust 项目。编译和宏扩展需要很长时间。如果我对代码进行微小的更改,“ cargo 测试”实际执行之前需要一分钟或更长时间。

是否可以在同一个 crate 中创建子项目或子模块并仅测试模块中的代码,假设不依赖于模块外部的代码?

最佳答案

您可能对“ cargo 工作空间”(https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html)感兴趣。

本质上,您不是将代码拆分为多个 mod,而是将其拆分为多个 crate。这些箱子可以通过“路径依赖”相互依赖。例如,你可以有这样的东西:

[dependencies]
my_helper_crate = { path = "path/to/crate" }

本书对此有更多详细信息,但使用工作区的一个很好的特性是您的箱子可以有单独的 Cargo.toml,但共享一个 Cargo.lock,这样您就不会遇到不兼容的 crate 版本问题。

使用此设置,您可以构建一个 crate,而无需构建其余的 crate,因此您可以减少开发反馈循环。

但是,如果你有依赖于crate_bcrate_a,构建crate_a仍然需要构建crate_b,有真的没有任何解决办法。好处主要是你的依赖图的叶子。

关于rust - 我可以只测试单个模块中的代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71026286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com