在工作区根目录中使用 rust cargo 运行 测试

Use rust cargo to run tests in workspace root

我有以下 rust 项目布局:

project_name
 ├── crate_1
 │     ├── src
 │     │     ...
 │     │     └── main.rs
 │     └── Cargo.toml
 ├── crate_2
 │     ├── src
 │     │     ...
 │     │     └── lib.rs
 │     └── Cargo.toml
 ├── tests
 │     └── tests.rs <-- run tests in here
 └── Cargo.toml

我想使用 cargo 运行 tests 目录中的测试,但是 cargo 似乎找不到它们。 有没有办法把货物运到 运行 他们那里?

tokio就是一个很好的例子。

现在您已经有了一个 tests 目录,让我们将它添加到工作区 Cargo.toml 中的 members

[workspace]

members = [
    "crate1",
    "crate2",

    "tests"
]

我们假设tests目录下有test_crate1.rstest_crate2.rs两个集成测试文件

tests 目录下创建一个 Cargo.toml,内容如下:

[package]
name = "tests"
version = "0.1.0"
edition = "2021"
publish = false

[dev-dependencies]
crate1 = { path = "../crate1" }
crate2 = { path = "../crate2" }

[[test]]
name = "test_crate1"
path = "test_crate1.rs"

[[test]]
name = "test_crate2"
path = "test_crate2.rs"

运行 cargo test 在工作区目录中检查它。