Cmocka测试没有显示任何输出

时间:2015-07-06 13:09:24

标签: c unit-testing cmocka

我已下载cmocka example files并按照所有说明操作。所有测试文件都已成功生成,我可以运行它们,但控制台中没有输出。我试图改变CMOCKA_MESSAGE_OUTPUT环境变量,尝试编写我自己的测试并编译它们,尝试重新编译并重新安装cmocka几次 - 没有任何东西使测试输出任何东西。我在32位Windows 7上工作,所以我想尝试cygwin,但是cygwin只是抛出它无法找到公共库,所以我放弃了我的研究分支 - 毕竟cmocka通常也应该在windows cmd中工作。有谁知道如何让测试输出到控制台?

修改

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

生成文件

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:cflags中的众多路径都是绝望的 - 起初我只使用了第一个。

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

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

你的问题出在带有单元测试的tests.c中,而不是你的设置。向我们展示您编写单元测试的tests.c文件。

答案 2 :(得分:0)

很抱歉挖掘出这个旧线程,但是最近我偶然发现了完全相同的问题。我自己使用介子/忍者自己编译了所有内容,并且既没有从测试本身获得任何输出,也没有从简单的printf获得任何输出。

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

pacman -S mingw-w64-x86_64-cmocka

对于32位MINGW:

pacman -S mingw-w64-i686-cmocka

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

答案 3 :(得分:0)

我遇到了同样的问题。 特别是我还使用了 gcov 来查看覆盖范围,它声称没有执行任何操作。

我的解决方案是我忘记将 cmocka 添加到我的环境路径中。将“cmocka.dll”添加到路径后,一切终于正常了。