我已经下载了cmocka示例文件并遵循了所有的说明。所有测试文件都是成功生成的,我可以运行它们,但是控制台中没有输出。我试图修改CMOCKA_MESSAGE_OUTPUT环境变量,尝试编写自己的测试并编译它们,多次尝试重新编译和重新安装cmocka -没有任何东西使测试输出任何内容。我在Windows 7 32位上工作,所以我想也尝试一下cygwin,但是cygwin只是抛出了它找不到公共图书馆的地方,所以我放弃了我的研究叉--毕竟cmocka通常也应该在windows cmd中工作。有人知道如何将测试输出到控制台吗?
编辑
我正在添加make信息,以防编译/链接出现问题,尽管我没有看到任何错误(它不会产生任何错误并正确地输出tests.exe文件):
makefile
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.exenote1:旗子中的许多路径都是出于绝望而出现的--起初我只使用了第一条路径。
note2:当我尝试在Netbeans或cygwin中运行这个脚本时,我会将del更改为rm -f并切换斜杠。输出如下所述: make是在没有任何错误的情况下完成的,并且输出了tests.exe,但是一旦执行,就会引发无法找到公共库的错误。
发布于 2015-07-07 09:09:06
发布于 2020-09-10 07:08:01
很抱歉挖出了这条旧线,但我最近偶然发现了同样的问题。用介子/忍者自己编译了所有的东西,既没有从测试本身得到任何输出,也没有从简单的打印输出中获得任何输出。
我通过使用来自这里的预编译库解决了这个问题。只需安装/启动MSYS2并使用64位MINGW:
pacman -S mingw-w64-x86_64-cmocka对于32位MINGW:
pacman -S mingw-w64-i686-cmocka然后,我重新编译了hello测试,输出按预期工作。
发布于 2021-10-22 19:27:00
我也遇到了同样的问题,对我来说,就是我没有正确地将state参数传递给测试。我的测试有这样的签名:
void test_something() { /* ...snip... */ }但它应该是
void test_something(void **state) {
(void) state; /* unused */
/* ...snip... */
}修复后,输出就会正确地出现。
https://stackoverflow.com/questions/31246771
复制相似问题