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

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

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

Пример программы тестирования

Для того, чтобы написать программу тестирования, необходимо подключить заголовочный файл библиотеки 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.

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.