У меня есть образующий путь следующего код, в котором сгенерированные файлы могут быть размещены:Где я должен поместить функции утилиты тестирования в Rust?
fn gen_test_dir() -> tempdir::TempDir {
tempdir::TempDir::new_in(Path::new("/tmp"), "filesyncer-tests").unwrap()
}
Этой функция определена в tests/lib.rs
, используемый в тестах в этом файл, и я хотел бы использовать его в модульных тестах расположенный в src/lib.rs
.
Можно ли достичь этого без компиляции функций утилиты в не-тестовый двоичный код и без дублирующего кода?
Разве вы не можете переместить эту funcionality в 'SRC/lib.rs', а затем использовать его в' Тесты/lib.rs'? –
@ DanielFath Я пробовал это и аннотировал с помощью '# [test]', чтобы избежать компиляции в release-двоичный код и получил эту ошибку: «функции, используемые в качестве тестов, должны иметь подпись fn() ->()« – PureW
Можете ли вы попробовать поставить ' #cfg (not (test)) ', который удалит ваш код на этапах без тестирования. –