源码编译CUnit 以及CppUnit。
查看文件
安装成功。
我使用的是netbeans 开发工具,远程连接centos进行C/C++的开发。
Cunit 项目文件
配置cunit静态连接库及运行环境
编写测试文件:
/*
* File: CUnitTest.c
* Author: Vicky.H
*
* Created on 2012-3-31, 14:22:29
*/
#include <stdio.h>
#include <stdlib.h>
#include "CUnit/Basic.h"
/*
* CUnit Test Suite
*/
int init_suite(void) {
return 0;
}
int clean_suite(void) {
return 0;
}
void test1() {
CU_ASSERT(2 * 2 == 4);
}
void test2() {
CU_ASSERT(2 * 2 == 5);
}
int main() {
CU_pSuite pSuite = NULL;
/* Initialize the CUnit test registry */
if (CUE_SUCCESS != CU_initialize_registry())
return CU_get_error();
/* Add a suite to the registry */
pSuite = CU_add_suite("CUnitTest", init_suite, clean_suite);
if (NULL == pSuite) {
CU_cleanup_registry();
return CU_get_error();
}
/* Add the tests to the suite */
if ((NULL == CU_add_test(pSuite, "test1", test1)) ||
(NULL == CU_add_test(pSuite, "test2", test2))) {
CU_cleanup_registry();
return CU_get_error();
}
/* Run all tests using the CUnit Basic interface */
CU_basic_set_mode(CU_BRM_VERBOSE);
CU_basic_run_tests();
CU_cleanup_registry();
return CU_get_error();
}
运行测试:
CppUnit项目文件
Hello.h
#ifndef HELLO_H
#define HELLO_H
#include <string>
class Hello {
public:
Hello();
Hello(const Hello& orig);
virtual ~Hello();
std::string sayHello();
private:
};
#endif /* HELLO_H */
Hello.cpp
#include "Hello.h"
Hello::Hello() {
}
Hello::Hello(const Hello& orig) {
}
Hello::~Hello() {
}
std::string Hello::sayHello() {
return "Hello World !";
}
配置CppUnit静态库和运行环境
HelloTest.h
#ifndef HELLOTEST_H
#define HELLOTEST_H
#include "Hello.h"
#include <cppunit/extensions/HelperMacros.h>
class HelloTest : public CPPUNIT_NS::TestFixture {
CPPUNIT_TEST_SUITE(HelloTest);
CPPUNIT_TEST(testSayHelloMethod);
CPPUNIT_TEST_SUITE_END();
public:
HelloTest();
virtual ~HelloTest();
void setUp();
void tearDown();
private:
void testSayHelloMethod();
Hello hello2;
};
#endif /* HELLOTEST_H */
HelloTest.cpp
#include "HelloTest.h"
CPPUNIT_TEST_SUITE_REGISTRATION(HelloTest);
HelloTest::HelloTest() {
}
HelloTest::~HelloTest() {
}
void HelloTest::setUp() {
}
void HelloTest::tearDown() {
}
void HelloTest::testSayHelloMethod() {
CPPUNIT_ASSERT(hello2.sayHello() == "Hello World !");
}
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/CompilerOutputter.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/TestRunner.h>
int main() {
// Create the event manager and test controller
CPPUNIT_NS::TestResult controller;
// Add a listener that colllects test result
CPPUNIT_NS::TestResultCollector result;
controller.addListener(&result);
// Add a listener that print dots as test run.
CPPUNIT_NS::BriefTestProgressListener progress;
controller.addListener(&progress);
// Add the top suite to the test runner
CPPUNIT_NS::TestRunner runner;
runner.addTest(CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest());
runner.run(controller);
// Print test in a compiler compatible format.
CPPUNIT_NS::CompilerOutputter outputter(&result, CPPUNIT_NS::stdCOut());
outputter.write();
return result.wasSuccessful() ? 0 : 1;
}
运行测试,测试结果: