visual unitarias unit tipos test studio pruebas net integracion ejemplos ejemplo c unit-testing

tipos - Marcos de pruebas unitarias para C



tipos de pruebas unitarias (3)

En caso de que tenga como objetivo las plataformas Win32 o el modo kernel NT, debería echarle un vistazo a cfix .

Posible duplicado:
Código de prueba unitaria C

He visto algunas preguntas específicas de C ++, pero tengo mucha curiosidad sobre C. Estoy tratando de agregar un marco de prueba de unidad estándar en nuestro entorno de compilación. Mis objetivos principales son alentar a nuestros desarrolladores a escribir pruebas unitarias y estandarizar esas pruebas para que otros puedan ejecutarlas. Idealmente, me gustaría ejecutar las pruebas unitarias como parte de nuestra construcción nocturna.

Empezamos a trabajar con CUnit, que funcionaba, excepto que todo se ejecutaba en un hilo y las fallas de memoria provocaban que las pruebas de la unidad dejaran de funcionar, lo cual era bastante molesto. También me pareció increíblemente difícil escribir las pruebas, pero eso podría ser solo una prueba para ti.

¿Alguien sabe de buenas alternativas? ¿Alguien ha tenido alguna experiencia con el C ++ Unit Testers con código C-only?


Escribo software integrado usando C y decidí escribir mi propio marco. Es muy simple y está escrito para MS Visual Studio. Es fácilmente portado a otras plataformas.

http://code.google.com/p/cunitwin32/

Si se dirige a Linux, creo que Check podría satisfacer sus necesidades.


Empezamos a trabajar con CUnit, que funcionaba, excepto que todo se ejecutaba en un hilo y las fallas de memoria provocaban que las pruebas de la unidad dejaran de funcionar, lo cual era bastante molesto.

Hay un marco de prueba de la unidad C que bifurca y ejecuta cada caso de prueba en un proceso separado para que todas las pruebas se ejecuten incluso en presencia de pruebas de ese volcado del núcleo:

Sin embargo, me temo la penalidad de rendimiento que traen todos estos tenedores (y para ser honesto, no lo intenté). Pero no voy a vivir mucho tiempo con un único centro de prueba de dumping: generalmente lo soluciono de inmediato.

Un truco para evitar que las pruebas unitarias se concentren es el protector de afirmaciones , por ejemplo: use una aserción para evitar el uso de un puntero NULL (ejemplo con minunit ).

void test_function_returning_a_pointer(void) { struct_t *theStruct = function_returning_a_pointer(); MU_ASSERT(theStruct != NULL); //--- now you can use the pointer MU_ASSERT(theStruct->field1 == 0); return MU_PASSED; }

Por cierto, no conozco ningún marco de prueba de unidad de C ++ que no se bloquee en caso de violación de la segmentación.

También me pareció increíblemente difícil escribir las pruebas, pero eso podría ser solo una prueba para ti.

¿Podría explicar sus dificultades? ¿Estás tratando de poner el código heredado bajo prueba?