问题标签 [googletest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3694 浏览

unit-testing - 如何使用带有 Jam 的 gtest_main 库构建 googletest 单元测试?

我正在尝试构建一个 googletest 单元测试,以作为我们可能使用的新单元测试框架的概念证明。在 googletest 中,有两种编写单元测试的方法:使用 main 或不使用 main。如果您没有定义 main,您可以链接到 gtest_main 库,其中包含一个 main() 函数,为您节省一些时间。在我的环境中,我们使用 Jam 构建二进制文件。我已经在我的代码中使用 main() 编译二进制文件并使用 libgtest 库,但我正在寻找如何在没有 main 的情况下在 Jam 中构建它。

基本情况(带有 main() 函数):

我可以用这个构建一个二进制文件:

破案(没有 main() 函数):

我无法用这个构建二进制文件。当我尝试链接对象时看到许多错误:

我收到许多与未定义的 blah 引用有关的链接器错误。未定义的引用似乎来自 testing::internal 命名空间,这不是我的代码的一部分。

关于如何解决这个问题的任何想法,或者寻找更多关于这个问题的线索?

0 投票
5 回答
46510 浏览

c++ - 在 Eclipse 中使用 googletest:如何?

我已经下载了谷歌测试,但现在我不知道如何将它链接到我在 Eclipse 中的项目。我应该将其添加为源文件夹吗?应该将它包含为 g++ 包含的库吗?那我该如何运行测试呢?

0 投票
4 回答
6249 浏览

c++ - 将带有模板参数的方法传递给宏

我无法将 Google Test 的ASSERT_THROW()宏与多个模板参数结合使用。考虑到我想确保Matrix<5,1>抛出的构造:

(这个例子没有多大意义,当然这不应该抛出,但它是简化我所拥有的之后留下的。)

我从 MS VC++ 2008 得到这个输出:

而在以下方面没有问题:

我该如何克服这个问题?

谢谢!

0 投票
6 回答
2571 浏览

c++ - 在 C++ 类的构造函数中抛出异常是一种好习惯吗?

我有这个引发异常的构造函数

initHints() 执行 _hints 的 memset 并设置一些变量。

我用谷歌测试框架测试它,如下所示:

测试失败并出现核心转储:

除了我不知道到底出了什么问题之外,我怀疑一些未初始化的对象被删除了(?),很多事情似乎在幕后发生,所以我开始怀疑在构造函数中抛出异常是否是一种好习惯。将这个功能放在另一个我可以在创建对象后调用的函数中,然后处理异常是否更好?

0 投票
7 回答
65434 浏览

visual-studio - 如何使用 Visual Studio 设置 $(OutDir)、$(TargetName)、$(TargetExt) 和 %(Lib.OutputFile)?

我正在尝试在 Visual Studio 2010 上构建gtest。转换解决方案文件后,我尝试构建,并收到以下警告消息。

消息说我需要设置变量$(OutDir)$(TargetName)以及$(TargetExt)中指定的属性值%(Lib.OutputFile)

我如何使用 Visual Studio(尤其是 VS 2010)做到这一点?

0 投票
1 回答
3134 浏览

c++ - 在 Google 测试中打印 exception.what()

我的一些代码使用

我正在使用 Google Test 和 TeamCity 自动执行我的测试。它在 Windows 上运行,因此如果发生意外异常,我使用 --gtest_catch_exceptions 参数将测试报告为失败。但是,Google Test 只是通过以下消息使测试失败

这不是很有帮助。我宁愿有这样的消息

我有一个实现该方法的自定义 TestListener

但似乎没有提到谷歌测试捕获的异常。有没有其他方法可以向 std::cout 或其他地方报告异常?

请注意,我不能使用

没有 --gtest_catch_exceptions,因为测试执行会在第一个异常时“取消”。

我也不想更改投掷代码。

感谢您的任何想法!

0 投票
2 回答
41123 浏览

visual-studio - 如何使用 msbuild 构建一些项目配置

gtest 的 msvc 目录有 gtest 项目文件,使用 Visual Studio 打开它使我能够使用 Batch Build 从 8 个配置中选择构建(gtest/gtest_main/gtest_prod_test/gtest_unittest x release/debug)。

如何使用msbuild工具做同样的事情?例如,我如何告诉 msbuild 构建 gtest/Debug 或 gtest_unittest/Release?

0 投票
3 回答
37753 浏览

unit-testing - Boost 测试与谷歌测试框架

我是单元测试世界的新手,基本上我是 C++ 开发人员,在大型产品上工作了将近 3 年,现在我决定对我的代码执行自动化单元测试。为此,我在互联网上进行了大量研究,遇到了许多工具和框架,最后选择了以下两个:1)Boost Test Libraries 2)Google Test Framework for c++

现在我很困惑从这些中选择哪个。如果有人使用上述任何一种,请分享您的经验。

0 投票
1 回答
40406 浏览

c++ - 如何将参数传递给gtest

如何将参数传递给我的测试套件?

我有以下主要的 gtest 代码。并且--number-of-input=5应该传递给 InitGoogleTest()。

我不知道如何将我的参数传递给测试套件/用例,如下所示?

添加

我修改了 main 方法以在InitGoogleTest().

这是给 gtest: 的参数./s --number-of-input=5 --gtest_filter=Test_Cases1*

这是结果:

gtest 过滤掉不具有 名称的测试Test_Cases1,并且它还显示除以 开头的参数之外的正确参数gtest

参考 -如何在 GoogleTest 中运行特定的测试用例

0 投票
3 回答
2847 浏览

c++ - 将 QTest 与其他框架进行比较

您能否将流行的 C++ 单元测试框架与 Qt 的 QTest 进行比较?

(cppunit,升压测试,谷歌测试等。)

有哪些优点缺点?谢谢你。

注意:GUI 测试对我们来说不是很重要。