我刚刚在GitlabCI管道中实现了CUnit测试阶段。 构建阶段将编译test.c文件。 测试阶段运行可执行文件。
在本地,所有测试均通过。
在gitlab运行程序中,只有在第一个printf()
之前有一个CU_ASSERT
时,测试才能通过。如果我放入printf并提交,则所有15个断言都将通过。如果我删除printf
并提交,则第一个ASSERT失败(然后作业被中止)。
代码如下:
void assert_parse(char *body, struct field *expected, int16_t nfields)
{
printf("This is really just a printf");
struct field result[nfields];
int16_t parsed = parse(body, result, nfields);
CU_ASSERT_FATAL(parsed == nfields);
for (int16_t i = 0; i < nfields; i++) {
CU_ASSERT_STRING_EQUAL_FATAL(result[i].key, expected[i].key);
CU_ASSERT_STRING_EQUAL_FATAL(result[i].value,
expected[i].value);
}
}
以printf
开始时,一切都很好。
如果我删除printf
,则第6行的ASSERT失败