c++ - google test
Cómo ejecutar casos de prueba específicos en GoogleTest (3)
Finalmente recibí algunas respuestas, ::test::GTEST_FLAG(list_tests) = true;
// Desde su programa, no con la consola wrt.
Si desea usar --gtest_filter =*;
/* =*, =xyz*... etc*/
// Necesita usarlos en la consola.
Por lo tanto, mi requisito es utilizarlos desde el programa, no desde la consola.
Updated:-
Finalmente recibí la respuesta para actualizar el mismo desde el programa.
::testing::GTEST_FLAG(filter) = "*Counter*:*IsPrime*:*ListenersTest.DoesNotLeak*";//":-:*Counter*";
InitGoogleTest(&argc, argv);
RUN_ALL_TEST();
Entonces, gracias por todas las respuestas.
Ustedes son geniales.
Estoy intentando escribir una función / método para mi proyecto, que le preguntará al usuario qué casos de prueba va a ejecutar. Se ve abajo ...,
Test_Cases_1
|_TestNo1
|_TestNo2....so on
Test_Cases_2
|_TestNo1
|_TestNo2....so on
....
....so on
Test_Cases_N
|_TestNo1
|_TestNo2....so on
Entonces, ahora el desafío es cuando se ejecuta el proyecto, ¿debería indicarme qué casos de prueba le gustaría ejecutar? Si selecciono Test_Cases_1
y Test_Cases_N
. Entonces debería ejecutar estos dos casos de prueba y debería excluir todos los demás de Test_Cases_2 to ....
En la ventana de resultados también me gustaría ver los resultados de Test_Cases_1
y Test_Cases_N
.
Entonces, si voy a ver GoogleTest, hay un método llamado test_case_to_run_count()
; Pero todos los test cases
están registrando con el método Test_F (). Entonces, hice muchos análisis, pero todavía no encontré ninguna solución. Por favor, ayúdame.
Podría usar opciones avanzadas para ejecutar las pruebas de Google.
Para ejecutar solo algunas pruebas de unidad puede usar --gtest_filter=Test_Cases1*
opción de línea de comando con valor que es expresión regular. Creo que resolverá tu problema.
UPD:
Bueno, la pregunta era cómo ejecutar casos de prueba específicos. La integración de gtest con su GUI es otra cosa, que realmente no puedo comentar, porque no proporcionó detalles de su enfoque. Sin embargo, creo que el siguiente enfoque podría ser un buen comienzo:
- Obtenga todas las cajas de prueba ejecutando pruebas con
--gtest_list_tests
- Analiza estos datos en tu GUI
- Seleccione casos de prueba que desee ejecutar ro
- Ejecute el ejecutable de prueba con la opción
--gtest_filter
Resumiendo @Rasmi Ranjan Nayak y @nogard responde y agrega otra opción:
En la consola
Deberías usar la bandera --gtest_filter
, como
--gtest_filter=Test_Cases1*
(También puede hacer esto en Propiedades | Propiedades de configuración | Depuración | Argumentos de comando)
En el medio ambiente
Debe establecer la variable GTEST_FILTER
como
export GTEST_FILTER = "Test_Cases1*"
En el código
Debes establecer un filter
bandera, como
::testing::GTEST_FLAG(filter) = "Test_Cases1*";
de tal manera que su función principal se convierte en algo así como
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
::testing::GTEST_FLAG(filter) = "Test_Cases1*";
return RUN_ALL_TESTS();
}
Consulte la sección Ejecución de un subconjunto de las pruebas para obtener más información sobre la sintaxis de la cadena que puede usar.