问题标签 [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 回答
236 浏览

symbols - c++ 单元测试与 CATCH 不明确的符号 std::size_t

我有这个简单的代码,但我不明白为什么它在 TEST_CASE("") 下给我一条红色波浪线,说它是一个 AMBIGUOUS SYMBOL std::size_t。它编译得很好,但是那条红线很烦人,我不明白。

编辑:我使用 Visual Studio 作为我的 IDE,这似乎是 VS 的一个问题,因为我使用 CLion 进行了尝试,并且没有波浪形的警告。我更喜欢与 VS 合作,所以我希望有人能帮助我。

0 投票
1 回答
998 浏览

c++ - 有什么方法可以从 Visual Studio 2017 中的 Catch C++ 测试中获取代码覆盖率指标?

我在 VS 2017 中有 C++ 项目,其中有一些Catch测试。但我无法弄清楚如何获得测试覆盖率指标。

虽然我更喜欢原生 VS 解决方案,但我很乐意使用必要的 VS 扩展,但据我所知,ReSharper 不支持它:

你是对的,C++ 既不支持分析也不支持覆盖

0 投票
1 回答
1801 浏览

cmake - cmake ExternalProject_Add 如何下载 URL 非 tar 文件?

如何设置外部项目来下载不是 .tgz 文件的链接?

例如, Catch提供了一个单一标头分发的版本。我只想下载这个而不是 git repo 或 .tgz 版本。但我还没有弄清楚如何告诉 CMake 这样做。

我想做类似的事情:

这会失败,因为 URL 假定 url 是压缩的 tar 文件。我尝试了DOWNLOAD_COMMAND的各种变体,但也没有任何成功。

0 投票
1 回答
204 浏览

c++ - Does C++ Catch has something like NUnit's TestCase with multiple parameter/input options

NUnit has the following feature where you can specify different values for a test with a TestCase attribute. Does Catch has something similar?

I need to run the same unit test with different data values but each be different unit tests. I can copy/paste TEST_CASE/SECTION and change values but is there a clean way to do it like NUnit does.

I'm finding it really hard to even figure out what to search for. Catch uses TEST_CASE for a unit test which is completely different than what NUnit calls TestCase.

0 投票
0 回答
52 浏览

c++ - Catch:我可以使用什么符号来个性化代码以进行单元测试

我正在使用Catch C++ 测试框架。我有一个单独的测试代码文件,我有

是否有一些 Catch 在构建时定义的符号,我可以使用它来更改我的代码定义?

一个例子:假设我有一些结构需要有一些特殊的构造函数,但仅用于测试目的,用于某些特定的测试用例。我希望在构建测试代码时能够使用此构造函数,但常规构建不应启用此功能。

我可以使用什么符号?

我查看了https://github.com/philsquared/Catch/blob/master/docs/configuration.md但找不到任何相关内容。

0 投票
1 回答
492 浏览

c++ - std::transform c++ 上的致命错误

我正在尝试将 foo 实例的向量转换为字符串,但在 std::transform 上出现致命错误。

Saydata具有以下值:

代码:

在调试时,它在执行行停止, *__result = __unary_op(*_first)然后tranform转到stl_algo.hcatch 测试框架的 FatalConditionHandler。我对捕获测试和 std::transform 都是新手。有人可以解释可能导致问题的原因以及如何解决吗?非常感谢!

0 投票
1 回答
1833 浏览

c++ - 在简单示例中捕获失败

我正在尝试将Catch单元测试集成到我的项目中,但对于当前可用的来说它失败了

例子:

test.cpp

错误:

0 投票
1 回答
927 浏览

catch-unit-test - catch c++ 测试框架中的 REQUIRE_NOTHROW 点

REQUIRE_NOTHROW断言的意义何在?如果我只是放置一个语句并且不将它包装在任何断言宏中,如果它仍然抛出它会失败吗?

0 投票
2 回答
5774 浏览

c++ - 使用 Catch C++ 进行单元测试正在干扰我的 main()

我是单元测试的新手,并决定使用 C++ 的 Catch 框架,因为它似乎很容易与其一个头文件集成。但是,我有一个多文件二叉搜索树程序(文件有:main.cpp、Tree.h、Tree.hxx、TreeUnitTests.cpp、catch.hpp)。如果我在 main.cpp 中注释掉我的 int main() 函数,我只能让我的单元测试运行。我知道它与我的 TreeUnitTests.cpp 中的“#define CATCH_CONFIG_MAIN”声明冲突,但如果我不包含该声明,我将无法运行单元测试。每次我想运行单元测试时,我怎样才能让两者都运行而不必评论我的 main() ?

这是我正在使用的头文件: https ://raw.githubusercontent.com/philsquared/Catch/master/single_include/catch.hpp

我在 Catch 教程上找到并用作指南: https ://github.com/philsquared/Catch/blob/master/docs/tutorial.md

一些相关文件供参考: main.cpp:

TreeUnitTests.cpp:

(我的测试不是真正的测试,只是为了验证 Catch 框架是否正常工作。我猜你可以说这是一个元测试)

0 投票
2 回答
84 浏览

c++ - 使用 Visual Studio 2008 编译 catch 时出错

更新:使用 catch 1.9.7 解决了这个问题。

我刚刚开始使用 catch,甚至无法编译一个简单的测试项目。我正在使用 Visual Studio 2008 并拥有 catch.hpp v1.10.0(单文件版本)。

我按照 catch 教程创建了一个简单的测试项目。main.cpp 是唯一的文件,代码包括:

编译时出现以下错误:

任何帮助将不胜感激。我无法在 catch 文档或在线找到任何内容,我渴望开始使用它。