2015-05-02 10 views
5

Jestem w projekcie wchodzącym w interakcję z plikami i chciałbym użyć plików tekstowych do przetestowania mojej pracy. Testy nie są jednak uruchamiane z katalogu tests/, dlatego I nie może niezawodnie znaleźć ich podczas uruchamiania cargo run.
Czy cargo obsługuje to przez zawsze uruchamiając test z katalogu głównego (co wydaje się być, ale nie znalazłem nic potwierdzającego to)?Znajdowanie zasobów do testowania przy użyciu ładunku

Odpowiedz

10

wierzę, że zmienna środowiskowa CARGO_MANIFEST_DIR może dać stabilny punkt bazowy:

use std::path::PathBuf; 

fn main() { } 

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

    println!("{:?}", d); 
    assert!(false); 
} 

Niektóre informacje żłobienia od How can a Rust program access metadata from its Cargo package?.

+0

To naprawdę działa! Dzięki! –