Erro ao compilar o unittest ++

1

Estou instalando o unittest ++ no MacOS Maverick, e vejo este erro de compilação:

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).

Como corrigir esse problema? Eu não tenho nenhum problema com a versão mais antiga do MacOS.

    
por Dzung Nguyen 21.12.2013 / 07:27

1 resposta

0

Eu corri para isso. Parece que há um erro no código de teste UnitTest ++. Ele implementa vários testes simulados em src / tests / TestTestRunner.cpp, mas todos eles têm a assinatura incorreta para Test :: RunImpl (). O RunImpl não espera nenhum argumento, mas o RunImpl do teste simulado fornece uma referência a um objeto TestResults.

por exemplo. em 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");
    }
 }

mas porque a assinatura não corresponde, deve 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");
    }
 }

Portanto, a solução é corrigir todo o RunImpl de maneira semelhante.

Não sei por que / como ele foi compilado e executado com êxito em plataformas anteriores do OSX.

ATUALIZAÇÃO: Depois de resolver isso, descobri que há, na verdade, um ticket aberto para isso: link - mas os mantenedores do projeto não parecem muito ativos ultimamente.

    
por 09.02.2014 / 04:04

Tags