2009-09-10 9 views

Respuesta

4

Expandir en Mark Bessey's answer: Me gusta mucho cxxTest porque es solo un conjunto de archivos de encabezado C++ & Perl scripts. Siempre que tenga un compilador de C++ & Perl, funcionará en casi cualquier sistema. También tiene características para integrar con su IDE (aunque no las he usado).

Además, aquí hay un buen artículo Exploring the C++ Unit Testing Framework Jungle. Este post es potencialmente fuera de fecha (alrededor de 2004), pero da un gran resumen de las características & ejemplos rectas arriba que utilizan cada uno de los siguientes C++ marcos de pruebas unitarias:

  • CPPUnit
  • Boost.Test
  • CppUnitLite
  • NanoCppUnit
  • Unidad ++
  • CxxTest
7

Utilizamos Google Mock y Google Test. Sin embargo, nunca antes había usado NUnit, no puedo comentar lo similar que es a NUnit.

9

¿Ha considerado usar CppUnit?

Aquí hay una descripción general en unit testing frameworks for C++.

+0

Sí, estoy un poco confundido: cppunit es lo primero en la lista que vinculaste. cppunit y NUnit son ambos parte de la familia xunit (y ambos fueron portados originalmente desde JUnit). – Cascabel

+0

... así que debería ser una combinación perfecta, ¿no es así? Hasta donde sé, CppUnit es el principal puerto JUnit para C++ (o al menos uno de ellos). –

3

Yo uso Boost.Test. Solía ​​usar CppUnit, pero descubrí que funciona de manera Java/Junit en lugar de hacerlo en C++. Por ejemplo, utilizando métodos de instalación y desmontaje en lugar de constructores y desctructores. También el soporte de Case/Fixture de prueba fue un poco laborioso ya que C++ no es compatible con la reflexión.

Encontré que Boost.Test se ajusta mejor con el código de C++ que estaba probando. También es mucho más poderoso. Después de un tiempo porté todas mis pruebas CppUnit a Boost.Test, esto tomó aproximadamente un día y no he mirado hacia atrás.

Por lo que sé, la persona detrás de cppunit también escribió cxxunit que es más C++ esque.

1

Hay una buena llamada CPPUnit. Comenzó su vida como un puerto de JUnit a C++ por Michael Feathers. He trabajado con eso y es genial. Sin embargo, tenga en cuenta que las pruebas unitarias en C++ son más difíciles que en otros idiomas.

2

Googletest es muy similar en el uso a xUnit. Googlemock es, con mucho, el mejor marco de burla para C++. Las bibliotecas son multiplataforma, tienen una excelente documentación y una base de usuarios activa. Todo lo que necesita es un compilador compatible con C++ que pueda manejar plantillas.

Michael Feathers, el autor original de CppUnit, ahora recomienda CppUnitLite, que es un marco básico. Una vez que lo haya obsequiado con las alegrías de Googlemock al ACCU 2010 espero que lo abrace :-)

4

No encontrará nada parecido a NUnit, desafortunadamente. Como C++ no tiene la misma capacidad de reflexión fuerte, el proceso para definir las pruebas debe ser algo más explícito, en lugar de usar atributos, como en NUnit.

Me gusta cxxtest porque es fácil de configurar y no requiere registro de prueba manual.

2

Hay un chico relativamente nuevo en el bloque llamado WinUnit. No he tenido tiempo de probarlo pero podría valer la pena mirarlo.

Cuestiones relacionadas