问题标签 [catch-unit-test]

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 投票
0 回答
38 浏览

java - 如何在 Junit 测试中的 catch 块下覆盖此 LOG 语句

如何在 Junit 测试中的 catch 块下覆盖此 LOG 语句。

0 投票
1 回答
41 浏览

c++ - 将 Gcov 与 CMake 和 Catch 一起使用

我想使用 Gcov 报告使用 CMake 编译的静态库Catch测试套件的覆盖率。

我按照此处的说明进行了添加CMakeModules/CodeCoverage.cmake(请参阅上面的文件系统树)。

如果任何测试函数失败,二进制文件bin/test将返回一个非零值。这会导致coveragemake 目标失败:

这些错误指向 Makefile 中调用测试二进制文件的行:

关于如何解决这个问题的任何建议?

0 投票
2 回答
83 浏览

c++ - 如何使用 Catch 为我的 Qt 应用程序进行第一次测试?

我第一次尝试在 Qt应用程序上学习/使用 Catch ( https://github.com/catchorg/Catch2 )。

我正在尝试遵循 Catch 初始页面 ( https://github.com/catchorg/Catch2/blob/devel/docs/tutorial.md#top ) 上提供的教程。

上述教程的第一行说,理想情况下,我应该通过其“CMake 集成”(https://github.com/catchorg/Catch2/blob/devel/docs/cmake-integration.md#top)来使用 Catch2。我忠实地遵循“理想”的道路。

在“CMake 集成”页面的第二段中,我开始迷失:如果您不需要自定义主功能,您应该...

我需要自定义主函数吗?为什么有人需要一个?一个人没有一个人怎么活?我完全不知道,文本既没有解释这些,也没有提供任何合理的默认方向(如果你不知道我们在说什么,就假装你......或类似的东西)。

我试图忽略这一点,然后继续。

在第三段(根据请求在下面复制)呈现了一个代码块,读者会知道它应该足以完成代码块。代码块是做什么的?我应该将此代码包含在一些预先存在的文件中吗?哪个文件?在所述文件的哪一部分?或者我应该使用建议的内容创建一个新文件?哪个文件?我应该把它放在哪里?

这意味着如果系统上已经安装了 Catch2,应该足够了

有人可以提供一个在 Qt 项目中简单使用 Catch2 的工作示例吗?最好是桌面应用程序?

2022 年 1 月 14 日更新:

这是我对尝试实现最小的 Qt + Catch2 集成的看法,类似于 Catch 教程中的第一个示例(https://github.com/catchorg/Catch2/blob/v2.x/docs/tutorial.md#writing-tests)。

我创建了一个名为 QtCatch 的 Qt Widget 应用程序。这是它的文件结构:

我在下面包含了所有文件内容以供参考。

该文件结构是通过 Qt“新建项目”对话框创建的。主项目是“Application (Qt) > Qt Widgets Application”,测试子项目是“Other Project >> Auto Test Project”

我的 Qt 应用程序运行没有问题。

如果我尝试编译测试子项目或主项目取消注释主 CMakeLists.txt 文件中的“add_subdirectory(tests)”行,我会收到相同的错误:

对 Calculator::Calculator() 的未定义引用

尽管

tst_qtcatchtest.cpp中的行

如何使这个简单的 Catch2 测试用例在 Qt 6 中工作?

CMakeLists.txt:

主.cpp:

主窗口.h:

主窗口.cpp:

主窗口.ui:

包括/计算器.h:

包括/calculator.cpp:

测试/CMakeLists.txt:

测试/main.cpp:

测试/tst_qtcatchtest.cpp:

0 投票
0 回答
5 浏览

unit-testing - UTF Catch:运行全套 -> 准确的测试结果;按标签运行 -> 3rd 测试用例给出过时的测试结果,但其他的很好

通过终端标签运行 UTF Catch 测试用例。该项目正在 VS08 中构建。我的一个测试用例有点奇怪。我总共有 6 个,当我从头到尾运行整个测试套件时,我的前 3 个测试用例通过了。我预计最后 3 个会失败,因为我还没有实现他们正在测试的代码。当我按标签单独运行我的测试用例时,前两个通过。*使用控制台命令:Test.exe [tagName]

根据我知道我已经解决的问题,第三个失败了。这真的很奇怪。当我运行整个套件时,一切都很好。当我通过 VS08 中的调试器单步执行有问题的测试用例时,我的所有检查都通过了(正如我运行完整套件时报告的那样)。

我真的不确定是什么导致了这种情况(我对 Catch 很陌生),但它的行为就像 Catch 为每个测试用例/标签保留一个缓存,出于某种原因,我的第三个测试用例(每个测试用例都有它的自己独特的标签,因为我的标题比我想打字的要长)缓存没有使用更新的代码,但完整的套件运行会。看到完整运行似乎返回了正确的测试结果,并且我的测试效率合理,暂时只进行完整运行就可以了。我只想知道为什么会发生这种情况——如果这是我的设置问题或其他问题——以及使用 Catch 进行未来测试是否会出现问题。