【问题标题】:Googletest does not run test fixtureGoogletest 不运行测试夹具
【发布时间】:2012-12-12 12:55:04
【问题描述】:

我正在尝试使用 googletest 在 C++ 中进行单元测试。我在ClusteringTest.h 中定义了一个文本夹具:

#include <gtest/gtest.h>

namespace EnsembleClustering {

class ClusteringTest: public ::testing::Test {

    ClusteringTest() {};

    virtual ~ClusteringTest() {};

    virtual void SetUp() {

    };

    virtual void TearDown() {

    };

};

TEST_F(ClusteringTest, doesGTestWork) {
    EXPECT_EQ(42, 42);
}


} /* namespace EnsembleClustering */

在我的主函数中,我调用:

 ::testing::InitGoogleTest(&argc, argv);
 return RUN_ALL_TESTS();

结果是:

running EnsembleClustering
[==========] Running 0 tests from 0 test cases.
[==========] 0 tests from 0 test cases ran. (1 ms total)
[  PASSED  ] 0 tests.

为什么我的测试没有运行?

【问题讨论】:

  • 没有。我开始使用 CppUnit,但由于库中的一个错误,它在我身上崩溃了一段时间。这就是我改用 GTest 的原因。
  • 然后使用调试器 - gbx 或 dbx
  • 您可以链接gtest_main.lib,然后gtest库将自动执行所有测试,无需显式主入口点。
  • 你是怎么编译的?你使用 IDE 吗?

标签: c++ unit-testing testing googletest


【解决方案1】:

您需要将您的标头 ClusteringTest.h 包含到某个 .cpp 文件中以使其具体化,并创建一个编译单元。

【讨论】:

  • 是的,就是这样。我试图将所有内容都放在头文件中,而没有实现源文件或将其包含在任何地方。
  • Peter:我遇到了同样的问题,但我不明白你的答案,因为我已经在 cpp 文件中设置了测试夹具(没有标题)。我可以问另一个问题,但有人会认为它是重复的。你能在这里看看我的文件吗:drive.google.com/…
  • @cls :我遇到了同样的问题,但我不明白这个答案,因为我已经在 cpp 文件中设置了测试夹具(没有标题)。我可以问另一个问题,但有人会认为它是重复的。你能在这里看看我的文件吗:drive.google.com/…
  • @Lucy 问一个新问题,你会得到更多人的帮助,而不仅仅是我。
猜你喜欢
  • 1970-01-01
  • 2015-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
  • 1970-01-01
相关资源
最近更新 更多