Controlar | |
---|---|
Tipo de | Herramienta de prueba unitaria |
Escrito en | xi |
Sistema operativo | Linux , mac OS , Windows |
ultima versión | 0.15.2 ( 7 de agosto de 2020 ) |
Estado | activo |
Licencia | LGPLv3 |
Sitio web | libcheck.github.io/check/ |
Check es una biblioteca de pruebas unitarias de estilo xUnit para programas en C. Distribuido con pruebas de código abierto bajo una licencia libre. La filosofía principal del proyecto es cubrir todas las posibilidades del sistema de pruebas con pruebas unitarias. Admite la ejecución de pruebas en procesos separados (a través de la llamada al sistema fork() en el sistema operativo Linux [1] ) para poder detectar la finalización incorrecta de las pruebas (por ejemplo, debido a un error de segmentación).
Para escribir un programa de prueba, debe incluir el archivo de encabezado de la biblioteca check.h, escribir funciones de prueba, distribuirlas en grupos y distribuir los grupos en suites de prueba. Después de la prueba, puede obtener la cantidad de pruebas que fallaron.
#incluir <stdlib.h> // Incluir el archivo de cabecera de la biblioteca. #incluir <verificar.h> // Función para probar alguna tarea. START_TEST ( nombre_prueba ) { /* Probar el código fuente. */ } END_TEST // Función para crear un conjunto de pruebas. Suite * ejemplo_suite_create ( vacío ) { suite * suite = suite_create ( "Ejemplo" ); // El conjunto se divide en grupos de pruebas, divididas por algunos criterios. TCase * tcase_core = tcase_create ( "Núcleo del ejemplo" ); // Agregar una prueba a un grupo de prueba. tcase_add_test ( tcase_core , test_name ); // Agregar una prueba al conjunto de pruebas. suite_add_tcase ( suite , tcase_core ); suite de retorno ; } int principal ( vacío ) { Suite * suite = ejemplo_suite_create (); SRunner * suite_runner = srunner_create ( suite ); srunner_run_all ( suite_runner , CK_NORMAL ); // Obtenga el número de pruebas fallidas. fail_count = srunner_ntests_failed ( suite_runner ); srunner_free ( suite_runner ); if ( fallo_cuenta != 0 ) { // Indica que la prueba ha fallado. devuelve EXIT_FAILURE ; } devuelve SALIR_ÉXITO ; }