Якщо бути точним, JKI називає Caraya “Assertion and unit test framework for

Перейдемо безпосередньо до Caraya. Як і JKI VI Tester, цей тест фреймворк є безкоштовним, і встановити його можна з VIPM. Після установки, функції Caraya знаходяться в палітрі функцій JKI Toolkits.
Які ж основні особливості Caraya?
В першу чергу – це те, що можна легко перетворити будь-який код модуль в тест модуль, за допомогою буквально пари функцій, та без необхідності писати якусь додаткову «обгортку» для нього.
Під час написання коду, багато

Розглянемо простий приклад використання Caraya.
Уявімо, що нам необхідно створити код модуль, який би видаляв дубліковані значення з числового масиву. І, необхідно виконати такі вимоги:
1. Якщо вхідний масив пустий, повинна генеруватися помилка з кодом 5001;
2. Якщо вхідний масив не має дублікованих значень, значення не модифікуються;
3. Якщо вхідний масив має дубліковані значення, вони видаляються з масиву (окрім першого входження значення).
Отже, можна створити два код модулі – перший буде виконувати перевірку на умову пустого масиву, а другий буде містити перший код модуль, і імплементувати решту вимог. Після того, як шаблони віайок підготовлені, слідуючи принципу test driven development, можна створити для них тести.
Створимо пусту

Все, тест готовий!
Тепер, запустимо нашу

Знову таки, створимо нову віайку, і закинемо туди функцію Define Test.vi, та дві функції Assert Equal_Variant.vi. І в цій віайці ми імплементуємо перевірку відразу двох вимог.
Після того, як тест-віайка буде імплементована, запустимо її. Результат тесту – Fail, як і очікувалося. Бачимо, що у вікні Caraya відображається інформація про наші дві тест умови.
Перейдемо до імплементації наших двох основних код модулів. Тепер, знову запустимо їх, одну за одною.
Бачимо, що тести пройшли успішно, а значить, наш код функціонує згідно вимог!
Отже, що можна сказати?
1. Не потрібно запускати ніякий додатковий інструмент – вікно Caraya запускається лише тоді, коли ми запускаємо на виконання наші тест-віайки.
2. Тести створюються швидко (звичайно, все залежить від умов перевірки);
3. Одна тест-віайка може містити декілька тест процедур, а не лише одну. Ну, або ж ми можемо імплементувати кожну тест процедуру в окремій віайці – це питання стилю;
4. Виконання тестів надзвичайно швидке – на це також роблять акцент автори Caraya. І це – великий плюс.
А якщо нам потрібен тест-звіт? Немає проблем! Створимо Test Suite.
Для цього, ми створимо третю віайку, куди добавимо дві інші функції – Define Test Suite.vi і Destroy Test Suite.vi.
Взагалі, Test Suite використовується саме для генерації тест звітів, оскільки об’єднати декілька тест модулів в один можна і без нього. Достатньо лише викликати їх із однієї віайки.
Але, Define Test Suite.vi також дозволяє виконувати тести в так званому «тихому» режимі, коли ми не будемо бачити вікно Caraya (для цього використовується вхід функції “Interactive”). Якщо тест не пройде, то на виході функцій буде генеруватися помилка (значення якої можна задавати вручну для кожного assertion).
До речі, також не обов’язково використовувати Define Test.vi в тест модулях – без цієї функції Caraya вікно буде неактивним, і в разі непроходження тесту буде генеруватися помилка (код помилки, по замовчуванню, 1).
Отже, коли наша Test Suite віайка є готова, запустимо її.
Бачимо, що Caraya вікно містить інформацію про наші три тести, поділені на дві групи; а також генерується тест звіт.
Тест звіт має наступний вигляд.
По-суті, це і все коротке інтро щодо використання Caraya.
Цим тема Caraya не вичерпується, оскільки я взагалі не зачіпав тему "TDD project example», який можна також встановити з VIPM. Цей проект містить приклад використання Caraya, символів проекту для запуску/пропуску тестів, і головне – приклад Pre-Build Action для виконання тестів перед білдом проекту. Дуже гарно ця тема розписана в цьому пості – TDD in LabVIEW - a Caraya approach, тому я рекомендую обов’язково ознайомитися із цією темою.
Як і інші JKI тулкіти, Caraya доступна в GitHub репозиторії, звідки можна скачати її вихідний код, імплементувати свої функції, і т.д.
Можу сказати, що мені Caraya подобається тим, що вона проста у використанні, і дозволяє дійсно швидко оформлювати віайки в код модулі. А юніт тестування, як я вже це писав раніше, необхідне для написання надійного, та функціонально правильного коду. І чим зручніший інструмент, який ми використовуємо для написання тестів, тим легшим та швидшим буде цей процес; і з більшим бажанням ми цим будемо займатися.