【问题标题】:Can't run tests in CppUnitTestFramework (VS2013)无法在 CppUnitTestFramework (VS2013) 中运行测试
【发布时间】:2014-10-20 21:33:57
【问题描述】:

在我团队其他成员的单独 perforce 流上,我无法对项目运行 CppUnitTestFramework 测试,而其他流运行测试正常。

这是一个代码sn-p:

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 文件之间没有差异。

【问题讨论】:

  • 您是否尝试删除这些属性?
  • 刚试了没用。

标签: c++ unit-testing c++11 visual-studio-2013 microsoft-cpp-unit-test


【解决方案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
}

【讨论】:

  • 我的项目中有一个空的测试类,删除它似乎可以解决问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-19
  • 2010-09-30
相关资源
最近更新 更多