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; }
См. также[править | править код]
Примечания[править | править код]
- ↑ Check 0.10.0: 3 Tutorial: Basic Unit Testing . libcheck.github.io. Дата обращения: 13 ноября 2016. Архивировано 19 мая 2016 года.
Ссылки[править | править код]
Это заготовка статьи о программном обеспечении. Помогите Википедии, дополнив её. |