问题标签 [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.
c++ - 异常后清理 Google c++ 测试框架
我正在使用 google 单元测试框架(fixtures)使用 C++ 单元测试,测试后清理对我来说非常重要。但是如果发生异常,可执行文件会崩溃并且清理永远不会发生。即使出现异常,有没有办法强制清理?
c - CUnit 断言断言 `((void *)0) != f_pCurSuite' 失败
我的代码如下所示:
gcc test.c -o test -lcunit
我在 Ubuntu 上使用它编译它。
尝试启动它时出现此错误:
测试:TestRun.c:159:CU_assertImplementation:断言“((void *)0)!= f_pCurSuite”失败。中止(核心转储)
这是什么意思?我在互联网上一无所获。
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
。) - 这个问题有更好的解决方案吗?
注意:在我能找到的相关问题/答案中,还建议对元素进行迭代(尽管我不认为这与我的问题重复,因为它没有直接询问检查平等的最佳方法是什么一般的数组)。
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)
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
autotools - Autotools:为多个目标全局添加库
我的项目有以下Makefile.am文件,但./configure
由于找不到 CUnit 函数符号而失败。
如何在全局范围内为所有目标添加(CUnit)库?
unit-testing - 在 Windows 中安装/编译 tarball
我被要求在我的机器(Windows 10 Pro x64)上“获取”CUnit(C 测试框架)。但是,当我开始下载它时,我注意到它是“tarball”文件格式(tar.bz2)。
理想情况下,我希望能够从 CMD 和可能从 eclipse 启动测试,但我在安装/打开文件时遇到问题。
任何帮助深表感谢。
请在此处找到原始 CUnit 文件的链接,以防它有任何用途:https ://sourceforge.net/projects/cunit/
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 工具链。
提前感谢您的评论。
c - 在 XCode 中运行 CUnit
我想从一开始就学习 CUnit。当我使用 macOS 时,我不想安装其他 IDE,例如 netbeans。我想安装 CUnit 并开始使用 XCode 学习它。如何为 XCode 安装 CUnit?