В отдельном потоке исполнения от остальной части моей команды я не могу запускать тесты 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 между различными потоками нет различий.
Возможная причина в том, что у вас есть тестовый класс, в котором нет тестов (в том же проекте).
Удаление такого класса может решить проблему.
Проблема воспроизводится, если я добавлю следующий класс в проект:
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
}