Не удается запустить тесты в CppUnitTestFramework (VS2013)

В отдельном потоке исполнения от остальной части моей команды я не могу запускать тесты CppUnitTestFramework для проекта, в то время как остальные потоки запускают тесты просто отлично.

Вот фрагмент кода:

TEST_CLASS(MyClass)
{
    BEGIN_TEST_CLASS_ATTRIBUTE()
        TEST_CLASS_ATTRIBUTE(L"Type", L"Native C++ Unit Tests")
        TEST_CLASS_ATTRIBUTE(L"TestClass", L"MyClass")
        END_TEST_CLASS_ATTRIBUTE()

public:

    TEST_METHOD(canFooTheBar)
    {
        ...
        Assert::IsTrue(foo());
    }
...
}

Вот ошибка, которую я получаю при попытке запустить тест:

------ Discover test started ------
Object reference not set to an instance of an object.
========== Discover test finished: 0 found (0:00:00.5129487) ==========
No tests found to run.

Между.sln и любыми соответствующими файлами.vcxproj между различными потоками нет различий.

1 ответ

Решение

Возможная причина в том, что у вас есть тестовый класс, в котором нет тестов (в том же проекте).

Удаление такого класса может решить проблему.

Проблема воспроизводится, если я добавлю следующий класс в проект:

TEST_CLASS(MyEmptyClass)
{
    BEGIN_TEST_CLASS_ATTRIBUTE()
        TEST_CLASS_ATTRIBUTE(L"Type", L"Native C++ Unit Tests")
        TEST_CLASS_ATTRIBUTE(L"TestClass", L"MyEmptyClass")
        END_TEST_CLASS_ATTRIBUTE()

public:
    //no tests
}
Другие вопросы по тегам