问题标签 [cunit]

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

c - 如何在 Windows 上安装 CUnit

我已经将库下载到我的桌​​面,但是当我尝试通过运行./configure命令安装它时出现错误:

bash: ./configure: No such file or directory

我已经查看了关于 SO(link1link2)的 2 个现有问题,但它们并没有解决我的问题。我是否正确下载了它?我将文件夹下载并解压缩到我的桌面,然后在库的主目录中打开Bash 终端并执行./configure命令。

如果有人可以提供帮助将非常感激,我没有想法!

0 投票
1 回答
1913 浏览

c++ - 异常后清理 Google c++ 测试框架

我正在使用 google 单元测试框架(fixtures)使用 C++ 单元测试,测试后清理对我来说非常重要。但是如果发生异常,可执行文件会崩溃并且清理永远不会发生。即使出现异常,有没有办法强制清理?

0 投票
1 回答
1325 浏览

c - CUnit 断言断言 `((void *)0) != f_pCurSuite' 失败

我的代码如下所示:

gcc test.c -o test -lcunit我在 Ubuntu 上使用它编译它。

尝试启动它时出现此错误:

测试:TestRun.c:159:CU_assertImplementation:断言“((void *)0)!= f_pCurSuite”失败。中止(核心转储)

这是什么意思?我在互联网上一无所获。

0 投票
2 回答
1873 浏览

c - CUnit 断言两个数组相等

我试图弄清楚,在 CUnit 中断言数组相等的最佳方法是什么。

我知道的文档根本不包含与数组相关的任何内容。

到目前为止我考虑的可能性:

  • 循环遍历数组元素并使用CU_ASSERT_EQUAL.

  • 只需CU_ASSERT_EQUAL在两个数组上使用。根据提到的文档,这不应该工作,因为CU_ASSERT_EQUAL只是转换为==. 实际上,以下测试会导致失败:

  • CU_ASSERT_NSTRING_EQUAL似乎有效,但名称暗示它适用于字符串:

我最倾向于使用CU_ASSERT_NSTRING_EQUAL.

所以问题的问题如下:

  • 除了(稍微)误导的名称之外,该解决方案是否CU_ASSERT_NSTRING_EQUAL有任何缺点?(我知道字符串只是数组,以 . 结尾\0。)
  • 这个问题有更好的解决方案吗?

注意:在我能找到的相关问题/答案中,还建议对元素进行迭代(尽管我不认为这与我的问题重复,因为它没有直接询问检查平等的最佳方法是什么一般的数组)。

0 投票
1 回答
789 浏览

c - 单元测试:CUnit

这一个正在引起悲伤;我想掌握 CUnit。

已使用以下说明安装它:http: //macappstore.org/cunit/

我在命令行使用以下内容: gcc myprog.c -Wall -Wfloat-equal -Wextra -O2 -pedantic -ansi -lm -lcunit -o myprog

它编译没有错误,我继续以下操作:./myprog

我的代码中有以下内容:

我的假设是这应该在同一目录中生成某种 .txt 或替代文件。这个假设不正确吗?我应该寻找什么?

更新:我目前在命令行上得到以下信息;“断言失败:(NULL!= f_pCurSuite),函数 CU_assertImplementation,文件 TestRun.c,第 162 行。中止陷阱:6”

(全面披露:编程新手......所以要温柔:P)

0 投票
1 回答
545 浏览

c - CUnit error: implicit declaration of function 'CU_inizialize_registry'

I'm new with CUnit, I'm trying to run a sample code to test if CUnit works. I have three files.

max.h

max.c

And Test_max.c

When I build I receive a warning and an error:

  • (warning) warning: implicit declaration of function 'CU_inizialize_registry' is invalid in C99 [-Wimplicit-function-declaration] if (CUE_SUCCESS != CU_inizialize_registry())
  • (error) ld: symbol(s) not found for architecture x86_64

What's wrong with CU_inizialize_registry? I do not understand. Could you help me? Thanks

More info: MacOS 10.12.3, Eclipse, cunit 2.1-3

0 投票
0 回答
39 浏览

autotools - Autotools:为多个目标全局添加库

我的项目有以下Makefile.am文件,但./configure由于找不到 CUnit 函数符号而失败。

如何在全局范围内为所有目标添加(CUnit)库?

0 投票
0 回答
149 浏览

unit-testing - 在 Windows 中安装/编译 tarball

我被要求在我的机器(Windows 10 Pro x64)上“获取”CUnit(C 测试框架)。但是,当我开始下载它时,我注意到它是“tarball”文件格式(tar.bz2)。

理想情况下,我希望能够从 CMD 和可能从 eclipse 启动测试,但我在安装/打开文件时遇到问题。

任何帮助深表感谢。

请在此处找到原始 CUnit 文件的链接,以防它有任何用途:https ://sourceforge.net/projects/cunit/

0 投票
1 回答
307 浏览

gradle - 如何使用 CUnit 测试具有多个组件的本机应用程序

我有一个 gradle 项目,用于 gradle(2.10 版)中的本机 c 应用程序,由多个组件组成:

以这种形式拥有应用程序的主要思想是更容易测试单个组件。但是,我有两个大问题:

main_component是一个应用程序,因此具有主要功能,这会产生此错误:multiple definition of 'main'... gradle_cunit_main.c:(.text+0x0): first defined here。这是可以预料的,并且在文档中有所提及,但我想知道是否有办法避免这个问题,例如,阻止主要组件包含在测试中。这与下一个问题有关

当我尝试按如下方式定义要测试的组件时,CUnit 插件(从 2.10 版开始)抱怨:

毕业抱怨:

无法使用创建规则 'component_1Test(org.gradle.nativeplatform.test.cunit.CUnitTestSuiteSpec) { ... } @ build.gradle line 68, column 9' 作为规则 'CUnitPlugin.Rules#createCUnitTestSuitePerComponent > 创建 'testSuites.component_1Test' create(component_1Test)' 已注册以创建此模型元素

综上所述,我想指示 cunit 插件只测试一些组件,并防止编译主组件(带有 main 函数)进行测试。同样,请注意我使用的是 gradle 2.10 并且无法升级到更新的版本,因为这会破坏我们的 CI 工具链。

提前感谢您的评论。

0 投票
0 回答
175 浏览

c - 在 XCode 中运行 CUnit

我想从一开始就学习 CUnit。当我使用 macOS 时,我不想安装其他 IDE,例如 netbeans。我想安装 CUnit 并开始使用 XCode 学习它。如何为 XCode 安装 CUnit?