2012-03-20 12 views
9

Doy mis primeros pasos en la noble senda del uso de pruebas unitarias para desarrollar mi aplicación, pero resulta ser una prueba empinada y difícil. Estoy desarrollando una aplicación en Qt, así que pensé en alcanzar su marco QTestLib. Ahora, entiendo cómo hacer pruebas unitarias, pero parece que no puedo descubrir cómo incorporar las pruebas unitarias en un proyecto. Digamos que tengo una aplicación de consola que solo tiene un archivo main.cpp y un archivo cpp y h para una clase que quiero desarrollar, digamos MyClass. Creo que lo correcto sería crear una clase de prueba correspondiente MyClassTest con sus archivos h y cpp. ¿Pero debería ponerlo en el mismo proyecto? O, mejor dicho, crea un proyecto separado solo para pruebas unitarias que tendrán acceso a los archivos en el proyecto "principal" (¿aún no sabes cómo lo haré?).Uso de las pruebas unitarias QT en un proyecto: funciones principales (...) conflictivas

Y si la aplicación principal y la prueba están en el mismo proyecto, ¿cómo ejecuto las pruebas sin ejecutar la aplicación o al revés? Traté de incorporar archivos del Tutorial 1 de Qt sobre pruebas de unidades en un proyecto de consola, pero el problema es que usan una macro QTEST_MAIN(TestQString) que se expande a una función main(...). Esto causa conflictos con main(...) en main.cpp. Bueno, puedo renombrar cualquiera de ellos, pero el problema sigue en pie: ¿cómo puedo ejecutar las pruebas o la aplicación en sí? Si anulo macro QTEST_MAIN (que de todos modos es una mala idea) deshabilito las pruebas. Si cambio el nombre a la función main(...) en main.cpp, entonces la aplicación real nunca se ejecuta. Supongo que debería haber una manera de hacer dos ejecutables separados para el proyecto, una unidad de prueba en ejecución y otra para iniciar la aplicación, pero no puedo encontrar la manera de hacerlo.

Respuesta

8

Definitivamente crea un proyecto separado para tus pruebas. Si organiza el proyecto de aplicación y el proyecto de prueba en directorios uno al lado del otro, debería poder hacer referencia a sus unidades de código desde su proyecto de aplicación usando rutas relativas en su archivo test.pro.

Utilizo el práctico corrector de prueba presentado en this blog.

+0

Acabo de tropezar con ese artículo hace unos minutos, de hecho parece ser el camino a seguir, ¡gracias! – Puchatek

Cuestiones relacionadas