C单元测试框架-xcut

| 2010年12月25日

今天的网络又可以用了,就这样断断续续的,赶紧的发篇blog。

现在给大家推出一款用于C语言的单元测试框架–xcut,是由Tony Bai和helight,就是我啦,一起开发的,当然开端是有tonny开始的,我只不过在后面加入并且开始了另外一个分支,加入了一些我认为比较好的方便的特性。使用基本c写的,可以在linux,windows下跑,但是目前主要是在linux测试使用的,测试系统debian5.0。基本上都是在家里的小本本上开发的,也感谢丁丁的支持,生命中有你真好!  

今天周六,从7点忙活到现在,新的修改测试,加入了几个比较好的算法的测试用例,修正了文档,刚刚发布出去了0.0.1的版本。哈哈。。。现在就来在blog中炫一下:

demo:

#include "xcut.h"

extern char * get_str(char *str, char *substr);

void tc_str(lcut_tc_t *tc, void *data) {
    char *str="Golden Global View";

    LCUT_STR_EQ(tc, "iew", get_str(str, "iew"));
    LCUT_STR_NE(tc, "eew", get_str(str, "iew"));
    LCUT_PTR_EQ(tc, NULL, get_str(str, "l"));
    LCUT_PTR_NE(tc, NULL, get_str(str, "w"));
    LCUT_STR_EQ(tc, "iew", get_str(str, "ie"));
    LCUT_STR_CASEEQ(tc, "ew", "IEW");
    LCUT_STR_CASENE(tc, "iew", "IeW");
    LCUT_STR_CASEEQ(tc, "ew", "eW");
}

void tc_nstr(lcut_tc_t *tc, void *data) {
    char *str="Golden Global View";

    LCUT_STR_EN(tc, "iw", get_str(str, "ie"), 2);
    LCUT_STR_EN(tc, "iew2", get_str(str, "ie"), 0);
}

int main() {
    lcut_ts_t   *suite = NULL;
    LCUT_TEST_BEGIN("a simple str test", NULL, NULL);

    LCUT_TS_INIT(suite, "a simple str unit test suite", NULL, NULL);
    LCUT_TC_ADD(suite, "str test case", tc_str, NULL, NULL, NULL);
    LCUT_TC_ADD(suite, "strn test case", tc_nstr, NULL, NULL, NULL);
    LCUT_TS_ADD(suite);

    LCUT_TEST_RUN();
    LCUT_TEST_REPORT();
    LCUT_TEST_END();

    LCUT_TEST_RESULT();

   return 0;
}

运行结果:

==================================================
	 a simple str test 
==================================================

===RunSuite===: a simple str unit test suite 
 [  Failed  ] Case 'str test case':
  * File    : get_char_test.c : 28 : Failed
  * Function: LCUT_PTR_EQ  
  * Expected: NULL 
  * Actual  : lden Global View 
 [  Failed  ] Case 'strn test case':
  * File    : get_char_test.c : 39 : Failed
  * Function: LCUT_STR_EN  
  * Expected: iw : Length: 2 
  * Actual  : iew 

===Summary===:
      Type     Total       Ran    Passed    Failed
   Suites:         1         1         0         1
    Cases:         2         2         0         2
     Time:        172 us

==================================================
		 RED BAR!  
==================================================

如果所有测试用例都通过,则你的控制台上会输出一个绿色的"GREEN BAR!",否则红色的"RED BAR!“将被呈现出来,并且可以显示失败用例比较详细的信息!

看完本文有收获?请分享给更多人

关注「黑光技术」,关注大数据+微服务