Можно ли использовать команду cargo
запустить библиотеку тестов (то есть., cargo test --lib
) и документация испытаний без выполнения каких-либо интеграционных тестов (например, тесты в крафт верхнего уровня tests
)? Бонусные баллы присуждаются за компиляцию интеграционных тестов без их запуска.Как запустить библиотеку тестов и док тестов, но не интеграционные тесты
Увеличить картинку. Мой ящик является клиентской библиотекой для веб-службы, а HTTP-сервер не является частью ящика. Я организовал мой ящик в:
- тестов библиотеки, которые делают не зависит от сервера HTTP,
- документации тесты, которые делают не зависит от сервера HTTP и
- интеграции тесты, которые требуют, чтобы HTTP-сервер работал на локальном хосте.
Таким образом, иногда невозможно, чтобы HTTP-сервер работал на машине, создающей ящик, например, агент сборки Travis CI. В этих ситуациях я хотел бы построить все тесты, но исключить запуск всех тестов интеграции, потому что каждый тест интеграции завершится неудачей.
Знаете ли вы, что атрибут 'cfg' проверяет функции' # [cfg (feature = "")] '? –
@ MatthieuM. Я не думал об этом. Я полагаю, идея состоит в том, чтобы поместить все интеграционные тесты в свою собственную функцию. Например, «тест на груз» - интеграция интеграции_тестов --no-run && load test' для создания всех тестов и выполнения только тестов библиотеки и тестирования документации. Тем не менее, это не так удобно, как то, что мне хотелось бы - что-то вроде «load test -build-all -lib -doc», который не требовал бы, чтобы тесты интеграции интеграции были условными на функцию. –
Также имеется атрибут [ignore] (https://doc.rust-lang.org/book/testing.html#the-ignore-attribute). – ArtemGr