问题标签 [catch2]
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.
c++ - Catch2 cmake 函数 'catch_discover_tests()' 在 bulid 时间不起作用
我使用 Catch2 进行单元测试。我想在构建后运行测试。
所以我在 Catch 中使用了 'cath_discover_test' 函数。
但在构建时,不要打印出任何关于测试的内容。
如下所示:
这是test.cmake文件源代码:
但是,我通过下面的 ctest 执行测试,测试工作。
构建后如何运行测试并显示测试结果的输出?
c++ - CATCH_CONFIG_MAIN 的 gtest 等价物是什么?
谷歌搜索后我找不到 gtest 的替代品
c++ - 运行单元测试,不包括 Catch2 中的特定标签
我可以根据Catch2中的特定标签“不匹配”运行测试用例吗?
[NotWorking]
在我完成实现该功能之前,我想调用不属于标记的测试用例。
c++ - 将 $(location) 传递给 Bazel --test_arg
问题
是否可以在为每个执行的测试重新评估的参数中$(location)
传递bazel test
一个通用参数?--test_args
语境
我想要做的是用于bazel test
批量执行测试,但产生独特的输出文件。
我使用带有--out
参数的 Catch2 来指定 JUnit XML 输出文件位置。我可以让 Catch2 将 JUnit 输出到STDOUT
,但是 test.log 会受到 Bazel 和任何其他STDOUT
或STDERR
Catch2 产生的测试数据的污染。
例如。我正在尝试制作以下内容:
- ./bazel-testlogs/
- 文件夹
- 测试
- 测试1
- Test1_JUNIT.xml
- 测试2
- Test2_JUNIT.xml
c++ - 用 Catch2 编译多个测试源的正确方法是什么?
我有以下项目结构:
test_main.cc
测试1.cc
测试2.cc
test_utils.hpp
如果我使用类似的东西进行编译clang++ -std=c++17 test_main.cc test1.cc test2.cc
,则该函数something_great
在 test1.o 和 test2.o 中都定义了。这会导致错误,例如
在 Catch2 文档的Scaling Up部分中,他们提到为了拆分您的测试,您可能需要
根据测试需要使用尽可能多的附加 cpp 文件(或任何你称之为实现文件的文件),但分区对你的工作方式最有意义。每个附加文件只需要 #include "catch.hpp"
但是在文档的示例部分中,我没有看到像我这样的用例。我阅读了这篇博文,其中描述了三种对我不感兴趣的解决方案:将函数定义为宏,或将函数static
或inline
.
是否有另一种方法来编译这些文件,这些文件产生一个可执行文件,其主要功能由定义test_main.cc
?
c++ - 如何使用 Catch2 测试我的 CMake 静态库项目?
我正在编写一个静态库,其中包含几个项目之间的一些共享代码。为了验证这个库中的代码是否正常运行,我想使用 Catch2 对其进行一些单元测试。
不幸的是,在尝试运行测试时,我遇到了编译的输出文件是共享库(.a)而不是可执行文件的问题。
我确信我可以创建一个单独的项目,它使用我的静态库中的函数,然后以这种方式运行测试,但理想情况下,我希望保持测试和构建配置尽可能接近。
所以我的问题是:设置我的项目以便我可以使用 Catch2 对我的静态库代码进行单元测试的最佳方法是什么?
这是我项目的 CMakeLists.txt 文件供参考:
c++ - 我正在编写单元测试。如何修复 LNK1120 错误
我想在visual studio 2017上写最简单的单元测试。但是有一个错误-“致命错误LNK1120:未解决的外部元素:23”
c++ - 单元测试。如何在 main() 中运行测试
我正在尝试在 main 函数中运行测试,但显示错误“您无法重载 main () 函数”。
c++ - catch2 单包含导致测试中出现“未定义的引用”
我已经看到很多具有相同问题的示例,但它们不适用于我的情况。
我有以下文件结构:
在Proj/CMakeLists.txt
:
并在Proj/TestDir1/CMakeLists.txt
:
在哪里catch_test_runner.cpp
:
所有这些看起来都很好,似乎基本上是我为此找到的众多指南的复制/粘贴。但是,我收到以下问题:
所以,显然它能够链接到 catch.hpp,否则它就无法找到任何这些东西。很明显,我正在使用 catch 的 single_include 版本,这是我发现的所有关于同一问题的示例的问题。
我做错了什么?