2010-04-21 23 views
9

Estoy empezando a usar QTestLib. He pasado por manual y tutorial. Aunque entiendo cómo crear pruebas, no entiendo cómo hacer que esas pruebas sean más fáciles de ejecutar. Mi fondo de prueba de unidad es NUnit y MSTest. En esos entornos, era trivial (al menos con una GUI) alternar entre ejecutar una única prueba, o todas las pruebas en una sola clase de prueba, o todas las pruebas en todo el proyecto, simplemente haciendo clic en el botón derecho.Pruebas unitarias en QTestLib - ejecución de pruebas individuales/pruebas en clase/todas las pruebas

Todo lo que veo en QTestLib es que utiliza la macro QTEST_MAIN para ejecutar las pruebas en una sola clase, luego compila y prueba cada archivo por separado; o use QTest::qExec() en main() para definir qué objetos probar, y luego cámbielos manualmente y vuelva a compilar cuando desee agregar/eliminar clases de prueba.

Estoy seguro de que me falta algo. Me gustaría ser capaz de fácil:

  • Ejecutar un solo método de prueba
  • Ejecutar las pruebas en toda una clase
  • ejecutar todas las pruebas

Cualquiera de los que llamarían la adecuada funciones de configuración/desmontaje.

EDITAR: Bounty ahora disponible. Tiene que haber una manera mejor, o un corredor de prueba GUI que lo maneje para usted o algo así. Si está utilizando QtTest en un entorno basado en pruebas, dígame qué funciona para usted. (guiones, los corredores de prueba, etc.)

+0

Deberías echar un vistazo a: http://stackoverflow.com/questions/9944507/how-to-compose-all-qttestlib-unit-tests-results-in-a-single-file-while-using- a/10165709 # 10165709 – muenalan

Respuesta

5

Puede ejecutar los casos de prueba única seleccionados (métodos de prueba) que pasa por los nombres de pruebas como command line arguments:

myTests.exe myCaseOne myCaseTwo 

Se ejecutará todo ensu/limpiezas demasiado. Lamentablemente, no hay soporte para comodines/patrones, por lo que para ejecutar todos los casos que comiencen con una cadena dada (supongo que eso es lo que quiere decir con "ejecutar las pruebas en una clase completa"), tendría que crear una secuencia de comandos (Windows batch/bash/perl/lo que sea) que llama:

myTests.exe -functions 

analiza los resultados de las pruebas y de las pistas seleccionadas usando primera sintaxis.

Para ejecutar todos los casos, simplemente no pasar cualquier parámetro:

myTests.exe 
+0

Quizás mejoren la funcionalidad en una versión futura .... –

1

Las tres características solicitadas por el OP, se integran en la actualidad a la Qt Creator.

El proyecto se escaneará automáticamente en busca de pruebas y aparecerán en el panel Prueba. Abajo a la izquierda de la pantalla:

Qt Creator screenshot

Cada prueba y los datos correspondientes se pueden activar haciendo clic en la casilla de verificación. El menú contextual permite ejecutar todas las pruebas, todas las pruebas de una clase, solo la prueba seleccionada o solo una. Según lo solicitado.

Los resultados de las pruebas estarán disponibles también desde Qt Creator. Un indicador de color mostrará la aprobación/falla de cada prueba, junto con información adicional, como los mensajes de depuración.

En combinación con Qt Creator, el uso de la macro QTEST_MAIN para cada caso de prueba funcionará bien, ya que Qt Creator invoca automáticamente cada ejecutable compilado.

Para obtener una descripción más detallada, consulte la sección Running Autotests del Manual de Qt Creator.