无法在 CppUnitTestFramework (VS2013) 中运行测试

Can't run tests in CppUnitTestFramework (VS2013)

本文关键字:运行测试 VS2013 CppUnitTestFramework      更新时间:2023-10-16

在与团队其他成员分开的性能流上,我不能在项目上运行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
}