我已下载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
,但一旦执行,就会抛出无法找到公共库的错误。
答案 0 :(得分:1)
未导出该符号,请参阅https://git.cryptomilk.org/projects/cmocka.git/commit/?id=7364469189558a8720b60880940a41e1a0d20452
答案 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”添加到路径后,一切终于正常了。