我有一个二进制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目录中?

最佳答案

工作空间甚至测试的概念都没有什么特别的。如果要在Rust代码中使用 crate ,则必须将其添加为依赖项:

[dependencies]
printer = { path = "crates/printer" }

也可以看看:
  • How to define test-only dependencies?
  • 关于rust - 您如何将所有包装箱包含在测试目录内的工作区中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48634617/

    10-13 04:46