Check | |
---|---|
Тип | Инструмент модульного тестирования |
Написана на | Си |
Операционная система | Linux, macOS, Windows |
Последняя версия | 0.10.0 (2 августа 2015) |
Состояние | активное |
Лицензия | LGPLv3 |
Сайт | libcheck.github.io/check/ |
Check — библиотека модульного тестирования в стиле xUnit для программ, написанных на языке Си. Распространяется с открытыми исходными тестами под свободной лицензией. Основной философией проекта является покрытие всех возможностей системы тестирования модульными тестами. Поддерживает запуск тестов в отдельных процессах (через системный вызов fork() в ОС Linux[1]) для возможности определения некорректного завершения тестов (например, по ошибке сегментирования).
Для того, чтобы написать программу тестирования, необходимо подключить заголовочный файл библиотеки check.h
, написать функции тестирования, распределить их по группам, а группы распределить по тестовым наборам. После проведения тестирования можно получить количество тестов, которые оказались неудачными.
1 #include <stdlib.h>
2 // Подключаем заголовочный файл библиотеки.
3 #include <check.h>
4
5 // Функция тестирования какой-либо задачи.
6 START_TEST(test_name)
7 {
8 /* Исходный код теста. */
9 }
10 END_TEST
11
12 // Функция создания набора тестов.
13 Suite *example_suite_create(void)
14 {
15 Suite *suite = suite_create("Example");
16 // Набор разбивается на группы тестов, разделённых по каким-либо критериям.
17 TCase *tcase_core = tcase_create("Core of example");
18
19 // Добавление теста в группу тестов.
20 tcase_add_test(tcase_core, test_name);
21
22 // Добавление теста в тестовый набор.
23 suite_add_tcase(suite, tcase_core);
24
25 return suite;
26 }
27
28 int main(void)
29 {
30 Suite *suite = example_suite_create();
31 SRunner *suite_runner = srunner_create(suite);
32
33 srunner_run_all(suite_runner, CK_NORMAL);
34 // Получаем количество проваленных тестов.
35 failed_count = srunner_ntests_failed(suite_runner);
36 srunner_free(suite_runner);
37
38 if (failed_count != 0) {
39 // Сигнализируем о том, что тестирование прошло неудачно.
40 return EXIT_FAILURE;
41 }
42
43 return EXIT_SUCCESS;
44 }
Это заготовка статьи о программном обеспечении. Вы можете помочь проекту, дополнив её. |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .