Пытаюсь настроить Unit Tests: У меня есть три файла: src/main.rs <-

импортирует и использует lib.rs

src/lib.rs <- в конце файла:
#[cfg(test)]
#[path="./lib_unittest.rs"]
mod lib_unittest;

src/lib_unittest.rs <- здесь тесты

Когда я запускаю cargo test то unittest делается два раза (исполняет каждый тест по два раза), при чем как я понимаю, один раз для main.rs, и один раз для lib.rs. Как это исправить, или как вообще правильно организовать unit+integration тестирование?

12 ответов

18 просмотров

так если сделаешь директорию tests то он будет все файлы от туда запускать по команде cargo test

это интеграционные

Myshko-Dm Автор вопроса

да, понимаю, но там вроде бы должны лежать имення integration

да ))

А как импортирует? Можно милнимальный пример?

Myshko-Dm Автор вопроса

// main.rs: pub mod lib; use lib::*; fn main() {...} // lib.rs: pub fn eval(input: &str) -> String { "2".to_string() } #[cfg(test)] #[path="./lib_unittest.rs"] mod lib_unittest; // lib_unittest.rs: use crate::*; #[test] pub fn unittest_add_numbers() { assert_eq!("2".to_string(), eval("1+1")); }

Тип крейта наверн надо указать

Myshko-Dm Автор вопроса

где и как?

cargo test --bin something

Myshko-Dm Автор вопроса

но так itegration тесты не запускаются(

Myshko-Dm Автор вопроса

о, нашел решение: cargo test --test '*' взято отсюда: https://github.com/rust-lang/cargo/issues/8396

Но тогда юниты не пускаются :D

Похожие вопросы

Обсуждают сегодня

Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
7
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Есть тут кто занимается разработкой серваков майна? Или знакомые
meow *
3
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Есть ли лимиты на кол-во вебхук по домену? Стоит в данный момент 900+ ботов и бывает бот перестает отвечать (не приходят вебхуки) 🐒 Помогает только перезапуск
ᅠ [ Кому не ответил, дублируйте ]
11
а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
Товарищи, здравствуйте Подскажите, пожалуйста, может кто-нибудь сталкивался с такой задачей Через вебапку можно сканировать qr-код, а есть ли возможность считывать nfc?
Artem Stormageddon
8
Карта сайта