问题标签 [cpputest]

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 回答
610 浏览

c - 如何测试C中的函数调用顺序?

我正在使用 Gtest 对 C 模块执行单元测试。要求之一是验证Supervision_Log()在执行几个不同的函数后调用的函数是否被调用。C 文件包括以下内容:

我开始知道 CppUTest 中有一个设施可以满足mock().strictOrder()我的需要。但是,在 Gtest 中是否有类似的东西?或者我该怎么办?

PS:如果有人更改函数调用的顺序,我们需要放置一个失败的测试用例。此测试用例将充当此命令的守护者,以防止未来版本中的任何更改。

0 投票
1 回答
318 浏览

c++ - cpputest on STM8 failed due multiple 'main'

I want to use cpputest on STM8 and installed all the required tools for it. I am able to run cpputest on my simplified code. on my main file which belongs to the hardware I have of course the main function. But in the Test environment I have a main function under AllTests.cpp as well. When I compile it i get the error:

A further issue I run into is: I compile the code for a 8bit processor and i use the library <stdint.h>, so my main file has the line uint8_t main(){ . The compiler of cpputest does not like that at all...

Does anyone has an idea how to fix this?

Files:

blinky.h:

blinky.c

test.cpp:

AllTest.cpp:

Makefile:

0 投票
0 回答
646 浏览

makefile - 在 Autotools 的情况下,配置文件位于单独的目录中

我正在为我的应用程序和 Autotools 实现 CPPUTEST,但在子目录中生成的最终生成文件无法进行最终构建。

文件夹结构:

快照添加:构建结构

构建结构继续

通常我会在每个配置文件保存在外部而不是配置文件夹内的地方看到自动工具的示例。

配置文件夹内的 Configure.ac:

Makefile.am 在配置文件夹中

Shell 脚本存在于“构建”之外

当我运行我的 shell 脚本时,make 文件在内部src和 test 文件夹中生成,但是当我尝试 make check 它执行 cd ../.. ---> 附加屏幕截图 ./build 执行

是否需要添加任何其他configure.ac选项makefile.am

0 投票
1 回答
954 浏览

c - 使用相对路径从 lcov 跟踪文件中删除文件

我试图从我的 lcov 跟踪文件中删除某些目录,但没有任何成功。我正在尝试使用相对路径,并且正在使用 cygwin。我的测试框架是cpputest。

我的目录结构看起来像这样

这是一个例子

最终我只想生成这个 foo.c 文件的覆盖率数据,我想排除或删除其他所有内容。

我试过使用这些目录的绝对路径,比如'cygdrive/C/Work/git/foo_library/test/bar/*',我也试过

我也不确定我应该指定哪些路径、gcda 文件的路径或源文件的路径。我都试过了。

我也尝试在我的捕获和删除命令中使用 -b . 和 -b ../。

编辑:我必须从 test 子目录中运行它才能确定路径。以下显示了完整路径

编辑:如果我这样做:$ lcov -r lcov.info '*bar*' '*baz*' '*cpp' -o lcov-filtered.info 它会做我想要的。然而,这似乎有点沉重。

0 投票
3 回答
1782 浏览

c++ - 检查是否在 C++ CppUTest 中调用了 C 函数

我有一个嵌入式 C/C++ 项目,我想用 CppUTest 为它编写单元测试。我想做的一个简单测试是确保在测试期间调用特定的 C 函数。

假设我在中定义了两个 C 函数function.h

我想测试这个功能big_process,如果没有被调用,我希望我的测试失败success

为此,我在单独的测试文件 test.cpp 中编写了一些CppUTests

我手动检查了big_process它工作正常并且正在调用success,但现在我希望我的测试能够做到这一点。但测试失败并告诉我:

所以我的问题很简单:如何确保success在 期间被调用big_process

0 投票
1 回答
376 浏览

unit-testing - 有没有办法在禁用 pthreads 的情况下构建 cpputest?

我打算在我的项目中使用 cpputest 作为测试框架,我需要交叉编译,因为它将在 ARM 平台上使用。我用于 ARM 开发的编译器是 arm-gcc,它是在禁用 pthreads 的情况下构建的。因此,我需要在没有 pthread 的情况下构建 cpputest。目前我正在遵循构建cpputest的自动工具方法。任何帮助将非常感激。

0 投票
1 回答
69 浏览

cpputest - CPPUTest 多重定义 main

致力于让 CPPUTest 使用示例应用程序代码。我修改了几个make文件来编译它,但现在我遇到了链接器错误,它指出“'main'的多个定义”

这可能是因为我在其中有一个 mainAllTests.cpp是我们调用 CommandLineTestRunner::RunAllTests(ac, av) 的地方,而另一个 main 是我的应用程序代码的主要部分。有没有办法解决这个问题。

0 投票
1 回答
124 浏览

windows - Windows命令行不执行多个命令

我正在通过命令行构建一个 Visual Studio 项目,因为我需要一次运行多个命令。所以我创建了一个包含所有命令的批处理文件。当我运行批处理文件时,只执行第一个命令。我的批处理文件是下面给出

测试.bat

当我运行这个批处理文件时,前三个命令被执行,第四个命令没有被执行。但是如果我使用 && 运行这些命令,所有的命令都会被执行。有什么建议吗?

0 投票
0 回答
2281 浏览

mocking - 使用模板基类模拟函数时出现“无趣的模拟函数调用”异常

我有一个基类 A:

和一个派生类B:

我想模拟class B及其方法:

测试:

但我不断收到一个例外:

它通过以下方法使用:

哪个内部调用

我尝试过使用MOCK_CONST_METHOD0_T,但效果不佳。

0 投票
1 回答
346 浏览

c++ - 包含 jsoncpp 后编译错误

当我尝试构建测试源时,我得到一个类似的错误。

stl_tree.h:542:14: 错误: '__node' 没有命名类型 ::new(__node) _Rb_tree_node<_Val>;

执行者的内容。

我的测试的源代码以以下包括开头。

“common/data_util_astro_cfg.h”文件包含以下内容。

我的问题是我得到了这些包含的编译错误,当我删除行 json.h include 一切都很好我可以获得二进制输出。

我认为问题在于新运营商的冲突。该解决方案由 Cpputest 方提供,位于http://cpputest.github.io/manual.html#memory_leak_detection。但不知何故还不清楚。:(

包含 <map> 后,该问题已在编译错误中定义。它与我的非常相似,但问题已通过创建新项目解决。在那种情况下,我别无选择。我正在使用 Yocto 项目,该项目也使用自动生成工具创建。

你能帮我解决这个问题吗?(感谢您的时间。)