Check (библиотека модульного тестирования)

Из Википедии, бесплатной энциклопедии

Check
Тип Инструмент модульного тестирования
Написана на Си
Операционные системы Linux, macOS, Windows
Последняя версия 0.15.2 (7 августа 2020)
Репозиторий github.com/libcheck/check
Состояние активное
Лицензия LGPLv3
Сайт libcheck.github.io/check/

Check — библиотека модульного тестирования в стиле xUnit для программ, написанных на языке Си. Распространяется с открытыми исходными тестами под свободной лицензией. Основной философией проекта является покрытие всех возможностей системы тестирования модульными тестами. Поддерживает запуск тестов в отдельных процессах (через системный вызов fork() в ОС Linux[1]) для возможности определения некорректного завершения тестов (например, по ошибке сегментирования).

Пример программы тестирования[править | править код]

Для того, чтобы написать программу тестирования, необходимо подключить заголовочный файл библиотеки check.h, написать функции тестирования, распределить их по группам, а группы распределить по тестовым наборам. После проведения тестирования можно получить количество тестов, которые оказались неудачными.

#include <stdlib.h> // Подключаем заголовочный файл библиотеки. #include <check.h>  // Функция тестирования какой-либо задачи. START_TEST(test_name) {   /* Исходный код теста. */ } END_TEST  // Функция создания набора тестов. Suite *example_suite_create(void) {     Suite *suite = suite_create("Example");     // Набор разбивается на группы тестов, разделённых по каким-либо критериям.     TCase *tcase_core = tcase_create("Core of example");          // Добавление теста в группу тестов.     tcase_add_test(tcase_core, test_name);          // Добавление теста в тестовый набор.     suite_add_tcase(suite, tcase_core);          return suite; }  int main(void) {     Suite *suite = example_suite_create();     SRunner *suite_runner = srunner_create(suite);          srunner_run_all(suite_runner, CK_NORMAL);     // Получаем количество проваленных тестов.     failed_count = srunner_ntests_failed(suite_runner);     srunner_free(suite_runner);          if (failed_count != 0) {         // Сигнализируем о том, что тестирование прошло неудачно.         return EXIT_FAILURE;     }      return EXIT_SUCCESS; } 

См. также[править | править код]

Примечания[править | править код]

  1. Check 0.10.0: 3 Tutorial: Basic Unit Testing. libcheck.github.io. Дата обращения: 13 ноября 2016. Архивировано 19 мая 2016 года.

Ссылки[править | править код]