Mam następujący kod określający ścieżkę gdzie generowane pliki mogą być umieszczone:Gdzie powinienem umieścić funkcje narzędzia testowego w Rust?
fn gen_test_dir() -> tempdir::TempDir {
tempdir::TempDir::new_in(Path::new("/tmp"), "filesyncer-tests").unwrap()
}
Funkcja ta jest zdefiniowana w tests/lib.rs
, używany w testach w tym pliku i chciałbym również, aby używać go w testach jednostkowych znajduje się w src/lib.rs
.
Czy można to osiągnąć bez kompilacji funkcji narzędziowych do binarnego kodu niebędącego testem i bez powielania kodu?
Czy nie można przenieść do tego Funkcjonalność 'src/lib.rs' a następnie używać go w' tests/lib.rs'? –
@DanielFath Próbowałem tego i dodałem adnotację z '# [test]', aby uniknąć kompilacji do release-binary i otrzymałem ten błąd: "funkcje używane jako testy muszą mieć podpis fn() ->()" – PureW
Czy możesz spróbować wstawić ' #cfg (not (test)), który usunie twój kod, podczas faz bez testowania. –