我正在尝试重写一些旧的C代码,并希望在实际开始重写之前进行一些测试。为此,我看了看CppUTest并尝试了一个示例应用程序,该应用程序包括一个头文件chrtostr.h,一个实现文件chrtostr.c和一个名为test_chrtostr.c的测试文件,其内容在下面列出:

#include <CppUTest/CommandLineTestRunner.h>

#include "chrtostr.h"

TEST_GROUP(chrtostr)
{
}

TEST(chrtostr, test_chrtostr)
{
  CHECK_EQUAL(chrtostr('n'), "sfsdfds");
}

int main(int ac, char **av)
{
  return CommandLineTestRunner::RunAllTests(ac, av);
}


和相应的Makefile.am

AUTOMAKE_OPTIONS = foreign

CPPUTEST_HOME = ./cpputest
CFLAGS = -g -Wall -I$(CPPUTEST_HOME)/include
LDFLAGS = -L$(CPPUTEST_HOME)/lib -lCppUTest

bin_PROGRAMS = chrtostr test_chrtostr
chrtostr_SOURCES = chrtostr.c chrtostr.h main.c
test_chrtostr_SOURCES = test_chrtostr.c


问题是,每次我尝试运行make时,都会得到以下回溯,但实际上并没有太大帮助:http://pastebin.com/BK9ts3vk

最佳答案

该测试驱动程序是用C ++编写的。您需要将其编译为C ++,因此将文件重命名为.cpp,并确保调用g++来驱动编译/链接(而不是gcc)。

关于c - CppUTest无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5604401/

10-10 15:25