testing - 如何找到用于 Cargo 测试的资源?

标签 testing rust rust-cargo

我正在进行一个与文件交互的项目,我想使用文本文件来测试我的工作。但是,测试不是从 tests/ 目录运行的,因此在运行 cargo run 时我无法可靠地找到它们。

Cargo 是否通过始终从根目录运行测试来处理这个问题(这似乎是这种情况,但我没有找到任何证明它的东西)?

最佳答案

环境变量CARGO_MANIFEST_DIR可以给你一个稳定的基点来引用其他文件。在这里,我们假设在 crate 的顶层有一个 resources/test 目录:

use std::path::PathBuf;

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

    println!("{}", d.display());
}

另见:

关于testing - 如何找到用于 Cargo 测试的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30003921/

相关文章:

rust - 如何删除使用 cargo install 安装的二进制文件?

javascript - Angular 2 - Http 测试 - 错误 : "Cannot read property ' getCookie' of null"

php - 服务器测试 PHP 应用程序

memory - 'static: std::marker::Sized` 不满足 - 我需要 Box 吗?

windows - 在磁盘上读取/写入文件时如何限制硬盘磁盘 I/O?

rust - 我如何解决导致错误 [E0495] : cannot infer an appropriate lifetime 的闭包

testing - 我如何针对同一 Artifact 的先前部署 Artifact 运行 Maven 测试?

api - Laravel 6 单元测试响应 401

rust - 运行 "ld: library not found for -liconv"时应该如何解决 "cargo build"错误?

rust - 你如何编译一个 Rust 库来定位 asm.js?