Ошибка компиляции unittest++

Ошибка компиляции unittest++

Я устанавливаю unittest++ на MacOS Maverick и сталкиваюсь с такой ошибкой компиляции:

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

Как исправить эту проблему? У меня нет проблем со старой версией MacOS.

решение1

Я столкнулся с этим. Похоже, в тестовом коде UnitTest++ есть ошибка. Он реализует ряд тестов-заглушек в src/tests/TestTestRunner.cpp, но все они имеют неправильную сигнатуру для Test::RunImpl(). RunImpl не ожидает аргументов, но RunImpl теста-заглушки предоставляет ссылку на объект TestResults.

например, на l25 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");
    }
 }

но поскольку подпись не совпадает, то должно быть:

 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");
    }
 }

Поэтому решение состоит в том, чтобы исправить все RunImpl аналогичным образом.

Я не уверен, почему/как он успешно компилировался и работал на более ранних платформах OSX.

ОБНОВЛЕНИЕ: После решения этой проблемы я обнаружил, что на самом деле существует открытый тикет для этого:http://sourceforge.net/p/unittest-cpp/bugs/23/- но в последнее время разработчики проекта не проявляют особой активности.

Связанный контент