2011-03-13 20 views
13

Estoy usando Qt Creator con qmake para crear mi proyecto y mi proyecto de prueba (QTest-tests). Tengo el proyecto de prueba ejecutándose solo ahora, pero me es difícil entender cómo probar las clases de mi proyecto normal. Puedo incluir los archivos .h de mi proyecto en los casos de prueba, pero eso por supuesto no es suficiente.Configuración de prueba de unidad en Qt Creator

Lanza mis errores de enlazador ya que no tiene el código o una biblioteca para buscar el código de la clase. ¿Hay alguna manera sencilla de decirle a qmake que busque todos los archivos fuente en una carpeta específica para cargarlos? ¿O cuál es la forma correcta de configurar tal proyecto de prueba sin tener que agregar también cada archivo fuente al proyecto de prueba o compilar su aplicación en una biblioteca para incluir?

Respuesta

4

¿Hay una manera simple de decirle a QMake que busque todos los archivos fuente en una carpeta específica para cargarlos?

qmake apoya comodines para que pueda tener algo como

SOURCES += *.cpp 
HEADERS += *.h 

del archivo de proyecto.

También asegúrese de ajustar MOC_DIR y RCC_DIR para señalar a otro lugar que no sea la carpeta de origen. No desea incluir archivos fuente generados en su SOURCES.

O lo que es la forma correcta de establecer un proyecto de este tipo de prueba sin tener que añadir cada archivo fuente también al proyecto de prueba o compilar su aplicación en un lib incluir

prefiero separar mis pruebas automáticas en dos clases:

  • Pruebas de la unidad que prueban componentes individuales (que generalmente viven en un archivo fuente). Me burlo de las dependencias a otras partes del sistema. Cada prueba unitaria es un proyecto propio de Qt y solo incluye los archivos fuente que se están probando + código de prueba + código simulado.

  • Pruebas de integración que prueban los componentes como un todo sin código simulado. Por lo general, es la parte del motor de la aplicación creada como biblioteca y luego vinculada al proyecto de prueba.

+0

Gracias! ¡Exactamente la información que necesitaba! – Matthias

+0

¿Cómo estás haciendo la parte burlona? ¿Tiene alguna herramienta para generar esqueletos en primer lugar o todo a mano? – rasjani

+0

@rasjani: Lo he hecho de forma manual, aunque supongo que no sería demasiado difícil de hacer de forma semiautomática. – laalto