У меня есть ящик с производственным кодом в каталоге src
и интеграционных тестах в каталоге tests
. В производственном коде используются макросы log
.Как инициализировать логгер для тестов интеграции?
Я хотел бы инициализировать глобальный регистратор при выполнении тестов интеграции (например env_logger::init().unwrap();
) Есть несколько тестов, и порядок испытаний не определен, так что я не знаю, в каком тест я должен поставить команду инициализации.
Есть ли способ, я могу сделать это красиво? Возможно, путем переопределения тестов main
функция?
Это очень плохая идея, потому что Карго запускает тесты параллельно по умолчанию. Вероятно, это приведет к тестированию flakiness для первых нескольких тестов, которые запускаются одновременно с этим. – Shepmaster
Да, я не знал этого, они не параллельны мне. Спасибо за подсказку. Хорошо, я узнал из 'cargo test --help', что количество тестовых потоков - это количество процессоров, которые у меня есть. Я уточню ответ, чтобы отметить это. –
[Они запускаются параллельно по умолчанию] (https://doc.rust-lang.org/stable/book/second-edition/ch11-02-running-tests.html#running-tests-in-parallel-or- последовательно), поэтому, если вы не отключили это явно, это все равно повлияет на тесты. – Shepmaster