首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cmocka测试没有显示任何输出。

Cmocka测试没有显示任何输出。
EN

Stack Overflow用户
提问于 2015-07-06 13:09:24
回答 5查看 1.6K关注 0票数 2

我已经下载了cmocka示例文件并遵循了所有的说明。所有测试文件都是成功生成的,我可以运行它们,但是控制台中没有输出。我试图修改CMOCKA_MESSAGE_OUTPUT环境变量,尝试编写自己的测试并编译它们,多次尝试重新编译和重新安装cmocka -没有任何东西使测试输出任何内容。我在Windows 7 32位上工作,所以我想也尝试一下cygwin,但是cygwin只是抛出了它找不到公共图书馆的地方,所以我放弃了我的研究叉--毕竟cmocka通常也应该在windows cmd中工作。有人知道如何将测试输出到控制台吗?

编辑

我正在添加make信息,以防编译/链接出现问题,尽管我没有看到任何错误(它不会产生任何错误并正确地输出tests.exe文件):

makefile

代码语言:javascript
复制
OBJ_DIR = obj
HDR = $(wildcard *.h)
SRC = $(HDR:.h=.c)
OBJ = $(HDR:%.h=$(OBJ_DIR)\\%.o)
CC = gcc
CFLAGS = -I"C:\Program Files\cmocka\include" -I"C:\Program Files\cmocka\lib" -I"C:\Program Files\cmocka\bin" -llibcmocka -lcmocka

.PHONY: all clean

all: tests.exe

$(OBJ_DIR)\\%.o: %.c %.h
    $(CC) $< -c -o $@ $(CFLAGS)

$(OBJ_DIR)\tests.o: tests.c
    $(CC) $< -c -o $@ $(CFLAGS)

tests.exe: $(OBJ) $(OBJ_DIR)\tests.o
    $(CC) $^ -o tests.exe $(CFLAGS)

clean:
    del $(OBJ) $(OBJ_DIR)\tests.o tests.exe

note1:旗子中的许多路径都是出于绝望而出现的--起初我只使用了第一条路径。

note2:当我尝试在Netbeans或cygwin中运行这个脚本时,我会将del更改为rm -f并切换斜杠。输出如下所述: make是在没有任何错误的情况下完成的,并且输出了tests.exe,但是一旦执行,就会引发无法找到公共库的错误。

EN

回答 5

Stack Overflow用户

发布于 2015-07-07 09:09:06

Stack Overflow用户

发布于 2020-09-10 07:08:01

很抱歉挖出了这条旧线,但我最近偶然发现了同样的问题。用介子/忍者自己编译了所有的东西,既没有从测试本身得到任何输出,也没有从简单的打印输出中获得任何输出。

我通过使用来自这里的预编译库解决了这个问题。只需安装/启动MSYS2并使用64位MINGW:

代码语言:javascript
复制
pacman -S mingw-w64-x86_64-cmocka

对于32位MINGW:

代码语言:javascript
复制
pacman -S mingw-w64-i686-cmocka

然后,我重新编译了hello测试,输出按预期工作。

票数 1
EN

Stack Overflow用户

发布于 2021-10-22 19:27:00

我也遇到了同样的问题,对我来说,就是我没有正确地将state参数传递给测试。我的测试有这样的签名:

代码语言:javascript
复制
void test_something() { /* ...snip... */ }

但它应该是

代码语言:javascript
复制
void test_something(void **state) {
    (void) state;  /* unused */
    /* ...snip... */
}

修复后,输出就会正确地出现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31246771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档