Я хотел бы иметь возможность передать флаг cargo test
, чтобы включить регистрацию в моих тестах, когда мне нужно отладить их.
Я придумал что-то вроде:
#[cfg(logging)]
// An internal module where I define some helper to configure logging
// I use `tracing` internally.
use crate::logging;
#[test]
fn mytest() {
#[cfg(logging)]
logging::enable();
// ..
assert!(true);
}
Тогда я могу включить журналы с помощью
RUSTFLAGS="--cfg logging" cargo test
. Это работает, но мне кажется, что я злоупотребляю системой флагов rustc
. У этого также есть побочный эффект перекомпиляции всех ящиков с моим флагом logging
, что (помимо факта, что это берет возрасты) может быть проблемой, если этот флаг используется одной из моих зависимостей однажды.
Есть ли лучший способ определить и использовать пользовательские атрибуты? Я мог бы добавить feature
к моему манифесту go, но это не особенность, так как это только для тестов.