我有一个二进制Rust项目,它使用工作区来管理子包。
目录结构
/myapp
Cargo.toml
/src
/tests
test.rs
/crates
/printer
Cargo.toml
/src
的myapp / Cargo.toml
[package]
name = "myapp"
[workspace]
members = ["crates/printer"]
在test.rs
内部我可以编译extern crate myapp;
以提取src/lib.rs
中公开的应用程序部分。这可以按预期工作。
但是,在尝试编译extern crate printer;
时,它无法找到它的错误。我已确认打印机包已正确放置在顶级Cargo.lock
文件中。
如何将我的子板条包含在顶层的/tests
目录中?
答案 0 :(得分:2)
工作空间甚至测试的概念都没有什么特别之处。如果要在Rust代码中使用crate,则必须将其添加为依赖项:
[dependencies]
printer = { path = "crates/printer" }
另见: