Unidad de Pruebas en QTestLib - corriendo test / pruebas individuales en clase / todas las pruebas

StackOverflow https://stackoverflow.com/questions/2686326

  •  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.)

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top