
Estoy instalando unittest++ en MacOS Maverick y me encuentro con este error de compilación:
src/tests/TestXmlTestReporter.cpp
src/tests/TestCurrentTest.cpp
Linking TestUnitTest++...
Running unit tests...
:107: error: Failure in test: Expected 2 but was 0
FAILURE: 1 out of 174 tests failed (1 failures).
¿Cómo arreglar este problema? No tengo ningún problema con la versión anterior de MacOS.
Respuesta1
Me encontré con esto. Parece que hay un error en el código de prueba UnitTest++. Implementa una serie de pruebas simuladas en src/tests/TestTestRunner.cpp, pero todas tienen la firma incorrecta de Test::RunImpl(). RunImpl no espera argumentos, pero RunImpl de la prueba simulada proporciona una referencia a un objeto TestResults.
por ejemplo, en l25 de TestTestRunner.cpp:
virtual void RunImpl(TestResults& testResults_) const
{
for (int i=0; i < count; ++i)
{
if (asserted)
ReportAssert("desc", "file", 0);
else if (!success)
testResults_.OnTestFailure(m_details, "message");
}
}
pero como la firma no coincide, debería ser:
virtual void RunImpl() const
{
TestResults* testResults_ = CurrentTest::Results();
for (int i=0; i < count; ++i)
{
if (asserted)
ReportAssert("desc", "file", 0);
else if (!success)
testResults_->OnTestFailure(m_details, "message");
}
}
Entonces, la solución es arreglar todos los RunImpl de manera similar.
No estoy seguro de por qué ni cómo se compiló y ejecutó correctamente en plataformas OSX anteriores.
ACTUALIZACIÓN: Después de resolver esto, descubrí que en realidad hay un ticket abierto para esto:http://sourceforge.net/p/unittest-cpp/bugs/23/- pero los encargados del proyecto no parecen muy activos últimamente.