Saltar al contenido

Cómo ejecutar casos de prueba específicos en GoogleTest

Solución:

Puede utilizar opciones avanzadas para ejecutar pruebas de Google.

Para ejecutar solo algunas pruebas unitarias, puede usar --gtest_filter=Test_Cases1* opción de línea de comando con valor que acepta la * y ? comodines para hacer coincidir con varias pruebas. Creo que solucionará tu problema.

UPD:

Bueno, la pregunta era cómo correr 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:

  1. Obtenga todos los casos de prueba ejecutando pruebas con --gtest_list_tests
  2. Analice estos datos en su GUI
  3. Seleccione los casos de prueba que desee ejecutar
  4. Ejecutar ejecutable de prueba con opción --gtest_filter

Resumiendo las respuestas de @Rasmi Ranjan Nayak y @nogard y agregando otra opción:

En la consola

Deberías usar la bandera --gtest_filter, igual que

--gtest_filter=Test_Cases1*

(También puede hacer esto en Propiedades | Propiedades de configuración | Depuración | Argumentos de comando)

En el medio ambiente

Deberías establecer la variable GTEST_FILTER igual que

export GTEST_FILTER = "Test_Cases1*"

En el código

Deberías poner una bandera filter, igual que

::testing::GTEST_FLAG(filter) = "Test_Cases1*";

de modo que su función principal se convierta 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 utilizar.

Finalmente obtuve una respuesta
::test::GTEST_FLAG(list_tests) = true; // Desde su programa, no desde la consola.

Si desea utilizar --gtest_filter =*; /* =*, =xyz*... etc*/ // Necesitas usarlos en Console.

Entonces, mi requisito es usarlos desde el programa, no desde la consola.

Updated:-

Finalmente obtuve 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *