找到用于货物测试的资源

Léo*_*lli 12 testing rust rust-cargo

我正在与文件交互的项目,我想使用文本文件来测试我的工作.但是,测试不会从tests/目录运行,因此在运行时我无法可靠地找到它们cargo run.
是否tests/通过始终从根目录下运行测试处理这个(这似乎是如此,但我没有发现任何东西,证明它)?

She*_*ter 25

我相信环境变量CARGO_MANIFEST_DIR可以为您提供稳定的基点:

use std::path::PathBuf;

fn main() {
    let mut d = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
    d.push("resources/test");

    println!("{}", d.display());
}
Run Code Online (Sandbox Code Playgroud)

一些信息来自于Rust程序如何从其Cargo包中访问元数据?.