Unidad de Pruebas en QTestLib - corriendo test / pruebas individuales en clase / todas las pruebas
-
30-09-2019 - |
Pregunta
Me estoy empezando a utilizar QTestLib. He pasado por el manual y tutorial . Aunque entiendo cómo crear pruebas, sólo que no estoy recibiendo cómo hacer esas pruebas convenientes para funcionar. Mi unidad de prueba de fondo es NUnit y MSTest. En estos entornos, era trivial (utilizando una interfaz gráfica de usuario, al menos) para alternar entre ejecutar una sola prueba, o todas las pruebas en una única clase de prueba, o todas las pruebas en todo el proyecto, simplemente haciendo clic en el botón derecho.
Todo lo que estoy viendo en QTestLib es o bien utiliza la macro QTEST_MAIN
para ejecutar las pruebas en una sola clase, a continuación, compilar y probar cada archivo por separado; o el uso QTest::qExec()
en main()
para definir qué objetos de prueba, y luego cambiar manualmente eso y volver a compilar cuando se desea añadir / clases de prueba eliminar.
estoy seguro de que me falta algo. Me gustaría ser capaz de fácilmente:
- Ejecutar un solo método de prueba
- Ejecutar las pruebas en toda una clase
- ejecutar todas las pruebas
Cualquiera de los llamarían las funciones apropiadas de instalación / desmontaje.
EDIT: Bounty ya está disponible. Tiene que haber una manera mejor, o una prueba de corredor GUI que lo hace por ti o algo así. Si está utilizando QtTest en un entorno basado en pruebas, que me haga saber lo que funciona para usted. (Secuencias de comandos, los corredores de prueba, etc.)
Solución
Puede ejecutar los casos de prueba única seleccionados (métodos de prueba) que pasa por los nombres de pruebas como argumentos de línea de comandos :
myTests.exe myCaseOne myCaseTwo
Se ejecutará todas INITs / limpieza también. Desafortunadamente, no hay soporte para comodines / coincidencia de patrones, por lo que se ejecute todos los casos que comienzan con cadena dada (supongo que eso es lo que entendemos por "ejecutar las pruebas en toda una clase"), habría que crear un script (ventanas batch / bash / perl / lo que sea) que las llamadas:
myTests.exe -functions
analiza los resultados y se ejecuta pruebas seleccionadas usando primero sintaxis.
Para ejecutar todos los casos, simplemente no se pasa ningún parámetro:
myTests.exe
Otros consejos
Las tres características solicitadas por el OP, se integran en la actualidad a la Qt Creator.
El proyecto se revisa automáticamente para pruebas y apear en el panel de prueba. Abajo a la izquierda de la pantalla:
Cada datos correspondientes prueba y se puede activar haciendo clic en la casilla de verificación. El menú contextual permite ejecutar todas las pruebas, todas las pruebas de una clase, sólo el seleccionadas o sólo una prueba. A medida solicitada.
Los resultados de la prueba estará disponible a partir del Qt Creator también. Un indicador mostrará el color de pasa / falla para cada prueba, a lo largo de información adicional como los mensajes de depuración.
En combinación con el Qt Creator, el uso de la macro QTEST_MAIN
para cada caso de prueba va a funcionar bien, ya que cada ejecutable compilado es invocado por el Qt Creator automáticamente.
Para una descripción más detallada, consulte la Ejecución de la sección de Autotests Creador Qt manual.