Пытаюсь настроить 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 ответов

12 просмотров

так если сделаешь директорию 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

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

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

'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Есть полностью собранная база "шрифтов" - подобных символов?
Shen
9
кто-нибудь отправлял ли групповые медиа с entites? что бы были гипер ссылки const result = await this.client.invoke( new Api.messages.SendMultiMedia({ silen...
Kokni
3
Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
if (user?.choseType === 'oneDay') { await ctx.reply( 'Добро пожаловать в команду «Магнита»! Правда, на один день ☺️ ', ); await ctx.s...
Kokni
1
а у тя шо за бот?
Андрей
6
а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
или ты хочешь сказать что это по юникоду не дефолтные буквы?
Roma
4
хотя нет, на нескольких акках есть звезды, а где их выводить то? я слепой?
Roma
1
всем салют сегодня утро заметил что бот не может отправлять фотки по url. ручками в браузере ссылка норм открывает фотки. падает ошибка 'Bad Request: failed to send message ...
Vasya Ivanov
9
Карта сайта