greatest C 单元测试工具

开源网站开源项目 24-05-22 11:04:05

greatest 是一个 C 语言的单元测试系统,只需要一个文件支持。示例代码:

$catsimple.c#include"greatest.h"TESTx_should_equal_1(){intx=1;ASSERT_EQ(1,x);/*defaultmessage*/ASSERT_EQm("yikes,xdoesn'tequal1",1,x);/*custommessage*/PASS();}SUITE(the_suite){RUN_TEST(x_should_equal_1);}/*Adddefinitionsthatneedtobeinthetestrunner'smainfile.*/GREATEST_MAIN_DEFS();intmain(intargc,char**argv){GREATEST_MAIN_BEGIN();/*command-linearguments,initialization.*/RUN_SUITE(the_suite);GREATEST_MAIN_END();/*displayresults*/}$makesimple&&./simplecc-g-Wall-Werror-pedanticsimple.c-osimple*Suitethe_suite:.1tests-1pass,0fail,0skipped(5ticks,0.000sec)Total:1tests(47ticks,0.000sec)Pass:1,fail:0,skip:0.

主要特点

小巧,轻便

除了ANSI C89以外,最大的功能不依赖任何内容,并且使用编译时,测试脚手架应该在没有警告的情况下构建-Wall -Wextra -pedantic。它低于1,000 LOC(SLOCCount),并且没有动态分配。

许可许可

最大的是根据ISC许可证发布的。您可以自由使用它,甚至可以用于商业目的。

易于设置

要使用,仅#include "greatest.h"在您的项目中。样板非常少。大多数功能是可选的。

不自以为是

当命令行测试运行器有用时,Greatest可以提供一个,但是它也可以作为其他程序的一部分运行。它不依赖于特定的构建系统或其他工具,而应适应各种测试方法。它积极避免在测试代码上施加体系结构选择。尽管在设计C时考虑到C语言是最伟大的,但是它试图从C ++中使用。

模块化的

测试可以单独运行,也可以分组进行。套件可以共享通用设置,并且可以位于不同的编译单元中。

低摩擦

可以按名称运行特定的测试或套件,以在开发过程中进行集中且快速的迭代。最大的好处是几乎没有启动延迟。

有一些编译时选项,如果使用C99或更高版本的语言标准进行编译,则用于参数测试(使用参数运行测试)的语法会稍微好一些。

一篇博客文章,提供了更多信息。虽然已有数年的历史,但主要功能仍是准确的。

盗窃案(一个相关项目)增加了基于属性的测试。

[greatest C 单元测试工具]相关推荐

Prana NetflixOSS 服务应用

Prana 是为你的 NetflixOSS 服务的应用。 Prana 很容易集成 NetflixOSS 服务,包括类似 Eureka, Ribbon, ……...

lineman web 应用工具

Lineman 是一个命令行实用工具,主要是帮 web 开发人员建立优秀的 JavaScript 的 web 应用程序。Lineman ……...

Ruby 动态类型编程语言

Ruby 动态类型编程语言

Ruby是一种跨平台、面向对象的动态类型编程语言。Ruby 体现了表达的一致性和简单性,它不仅是一门编程语……...

今日开源
  1. casbin 轻量级访问控制框架

    casbin是一个用Go语言打造的轻量级开源访问控制框架,采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。 casbin 的主要特性包括: 支持自定义请求的……

    开源软件 2024-06-24

  2. xs C 多线程网络库

    基于C多线程网络库,欢迎大家使用,例子在代码example目录下,以后我会再增加一些例子。 文档暂时没有,有问题请邮件我:-) 获取代码:https://github.com/xueguoliang/xs xs致力于1)多线程网络库,如果你的程序要……

    开源软件 2024-06-24

  3. Sikuli 图形脚本语言

    Sikuli 图形脚本语言

    MIT设计了一种新颖的图形脚本语言Sikuli,计算机用户 只须有最基本的编程技能(比如会写print"hello world"),他不需要去写出一行行代码,而是用屏幕截图的方式,用截出来的图形元素组合出神奇的程序。……

    开源软件 2024-06-24

返回顶部小火箭