En el proceso de creación de nuestra C++ marco de pruebas de unidad para los próximos años en la lista reducida GoogleTest y CPPUnit. Tengo algo de experiencia con ambos y mi gran preferencia es GoogleTest. De todos modos para convencer a mi jefe, necesito algunos datos , así que leí un poco en Internet, incluidos los manuales, las páginas wiki y algunas de las fuentes. Se me ocurrió una lista de ventajas de GoogleTest y una única ventaja de CppUnit (corredores de pruebas gráficas). Aquí están clasificadas por percibe utilidad:GoogleTest vs CPPUnit: Los hechos
- INSTANTIATE_TEST_CASE_P crear una instancia de un caso de prueba con cualquier conjunto de parámetros que desea, incluyendo productos cartesianos
- FRIEND_TEST para probar miembros de la clase privada (para todo el código heredado)
- inflexión afirma en los puntos de interrupción
- no fatales afirma
- "fuera de la caja" integración googlemock
- autómata ic pruebas de detección, no hay necesidad de enumerarlas
- pruebas se pueden desactivar y permitieron
- pruebas pueden ser seleccionadas utilizando patrones de nombre/ensayos de tipo parametrizada
- valor
- predicado definido por el usuario para ejecutar afirma
- la muerte pone a prueba
- mucho más rico conjunto de afirma
- tipo afirma
- valer en subrutinas
- información de depuración adicional se puede agregar a asevera usando < <
- RecordProperty emite el último valor de la propiedad a la salida XML
- SCOPED_TRACE ayuda a entender el contexto de un error de aserción que viene de dentro de una sub-rutina o bucle.
- xUnit salida XML, se puede demostrar por Jenkins inmediato sin una transformación XSLT en el medio
- admite impresoras tipos personalizados
- tiempo consumido por indicación de prueba (Sospecho que esto también es posible con CPPUnit pero no he averiguado aún)
- prueba de detector de eventos API (plug-ins definidos por el usuario)
- prueba barajar
- sin excepciones y RTTI
A ¿Corrijo al asumir que CppUnit no admite todo lo anterior? ¿Hay alguna función útil de GoogleTest? no disponible en CppUnit ¿Me falta?
Y por último pero no menos importante: ¿Hay alguna característica agradable de CppUnit que GoogleTest carece de?
Gracias!
Algunas de las respuestas a [Comparación de marcos de pruebas de unidades de C++] (http://stackoverflow.com/questions/242926/comparison-of-c-unit-test-frameworks) abordan específicamente las características de GoogleTest. –
Hace un par de años estaba haciendo una encuesta similar, GoogleTest no existía entonces. Me decidí por CXXTest, que tenía un mecanismo para enumerar los casos de prueba mediante un paso previo al análisis con Perl. Eso fue muy superior a CppTest. Dicho esto, no sé nada sobre GoogleTest. –
¿Un corredor de prueba gráfico es una ventaja? Por lo general, desea algo que pueda automatizarse fácilmente, ya que la automatización significa que obtiene retroalimentación de prueba más fácilmente y con más frecuencia. –