是否可以使用货物进行逐步构建?

问题描述 投票:0回答:1

我有一个多工作空间货运项目:

cli/
server/
test/
Cargo.toml

在父母

Cargo.toml

[workspace]
members = [
    "server",
    "cli",
    "tests",
]
resolver = "1"

test
工作区中,有一堆集成测试,这些测试取决于
cli
板条箱的构建。所以,我只想运行
cargo test
来运行所有依赖于构建的
cli
可执行文件的测试。但现在失败了:

test tests::should_output_help ... FAILED

failures:

---- tests::should_output_help stdout ----
Error: Cause: Cargo command not found: /Users/l3r8y/code/fakehub/target/debug/cli

但是如果我在测试之前运行

cargo build
一切都会好起来的。所以问题是 – 是否可以仅在构建
cargo test
后才使
cli
构建
cli
创建并运行测试?

rust rust-cargo cargo
1个回答
0
投票

Cargo 特别支持特定包的测试访问该包中的二进制文件。它还没有任何东西可以使用来自单独包的二进制文件(这将是artifact dependency,尚未实现)。因此:

  1. 将相关测试从
    test/
    包移动到
    cli/tests/
    cli
    包的集成测试位置)。
  2. 在您的测试中,使用
    env!("CARGO_BIN_EXE_cli")
    作为要执行的命令的路径。 (文档)
© www.soinside.com 2019 - 2024. All rights reserved.