开源单元测试工具汇总

发表于:2019-3-12 10:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:webmaster    来源:本站原创

  16.C++单元测试工具 GoogleTest
  授权协议:BSD
  开发语言:C/C++
  操作系统:跨平台
  GoogleTest 详细介绍
  Google的开源C++单元测试框架Google Test,简称gtest 是一个非常的不错单元测试框架。支持跨平台以及包括 Windows CE 和 Symbian 在内的一些手机操作系统。
  17.C++单元测试框架 CppTest
  授权协议:LGPL
  开发语言:C/C++
  操作系统:跨平台
  CppTest 详细介绍
  CppTest 是 C++ 的单元测试框架。CppUnit 简单得多,但是效果也不错。下面简要地对比这两个强大的工具:
  创建单元测试和测试套件的简便性。CppUnit 和 CppTest 都创建类方法形式的单元测试,类本身都派生自工具提供的 Test类。但是,CppTest 的语法略微简单些,测试的注册在类构造器内进行。对于 CppUnit,需要额外的宏 CPPUNIT_TEST_SUITE 和CPPUNIT_TEST_SUITE_ENDS。
  运行测试。CppTest 直接调用测试套件上的 run 方法,而 CppUnit 使用单独的 TestRunner 类,通过调用这个类的 run 方法运行测试。
  扩展测试层次结构。对于 CppTest,随时可以从以前的测试套件派生新类,从而扩展测试套件。新的类定义一些新函数,这些函数成为新的单元测试。只需在新类类型的对象上调用 run 方法。与之相反,CppUnit 需要使用 CPPUNIT_TEST_SUB_SUITE宏和类继承来实现相同的效果。
  生成格式化的输出。CppTest 和 CppUnit 都允许定制输出。但是,CppTest 有预定义的 HTML 输出格式化器,而 CppUnit 没有。但是,只有 CppUnit 支持 XML 格式化。它们都支持文本和编译器式格式。
  创建测试装备。要想使用测试装备,CppUnit 要求测试类派生自 CppUnit::TestFixture。您必须提供设置和退出例程的定义。对于 CppTest,只需提供设置和退出例程的定义。这个解决方案显然更好,因为这让客户机代码更简单。
  预定义的宏支持。CppTest 和 CppUnit 都提供一组用于断言、处理浮点等的宏。
  头文件。 CppTest 只要求包含一个头文件,而 CppUnit 客户机代码必须根据使用的特性包含多个头文件,比如 HelperMacros.h 和 TextTestRunner.h。
  18. JavaScript/TypeScript 测试框架 MoqJS
  授权协议:未知
  开发语言:JavaScript
  操作系统:跨平台
  MoqJS 详细介绍
  MoqJS 是基于 .NET Moq 框架的 JavaScript/TypeScript 测试框架。
  主要特性:
  强类型:TypeScript
  完美的 VS 集成
  使用 setup/setupPrivate/verify/verifyPrivate 来修改和检测 moles behavior
  非常低的学习曲线
  示例代码:
   // Create some object instance
  var dog = new Dog();
  // Create a mole for the object
  var mole = new Mole(dog);
  // Setup behavior
  mole.setup(_dog => _dog.eat('meat')).returns('Yum yum yum');
  // Invoke
  var result = dog.eath('meat');
  // Verify the given method was indeed called with the expected value exactly once
  var isVerified = mole.verify(_dog => _dog.eat('meat'), Times.exact(1));
  slavik57 / moqjs
  19. Android 自动化测试 Robolectirc
  授权协议:MIT
  开发语言:Java 查看源码
  操作系统:Android
  Robolectirc 详细介绍
  Robolectirc 是一款 Android 程序自动化测试工具。
  测试代码:
   @RunWith(RobolectricTestRunner.class)
  public class MyActivityTest {
  @Test
  public void clickingButton_shouldChangeResultsViewText() throws Exception {
  Activity activity = Robolectric.buildActivity(MyActivity.class)
  .create().get();
  Button pressMeButton = (Button) activity.findViewById(R.id.press_me_button);
  TextView results = (TextView) activity.findViewById(R.id.results_text_view);
  pressMeButton.performClick();
  String resultsText = results.getText().toString();
  assertThat(resultsText, equalTo("Testing
  Android Rocks!"));
  }
  }
  robolectric / robolectric
  20.Python 模拟测试框架 CaptureMock
  授权协议:LGPL
  开发语言:Python
  操作系统:跨平台
  CaptureMock 详细介绍
  CaptureMock 提供 Python 模拟的捕获-重放功能,建立在命令行和客户机-服务器通信的基础上。CaptureMock 所谓的方法就是 捕获-重放 方法。它在用户‘记录’模拟子系统的时候观察代码和模拟出来的子系统的交互,并且用它自己的格式记录在文本文件中。
  当用户在 ‘重放模式’运行测试时,CaptureMock 会扮演还在酝酿中的子系统,用户甚至可以不用安装真正的子系统。用户每次运行测试的时候都可以选择是在真实子系统的下还是校验或者重建捕获到的模拟子系统,亦或者是之前运行捕获的模拟子系统。如果在‘重放模式’下,CaptureMock 不能接收到之前相同的调用,那么测试将会失败,提示用户是否想在记录模式下重建模拟子系统。
  21.C语言单元测试框架 CUnit
  授权协议:LGPL
  开发语言:C/C++
  操作系统:Windows
  CUnit 详细介绍
  继Junit CppUnit的成功后, c语言环境下也出现了开发源码的白盒测试用例CUnit。CUnit以静态库的形式提供给用户使用,用户编写程序的时候直接链接此静态库就可以了。它提供了一个简单的单元测试框架,并且为常用的数据类型提供了丰富的断言语句支持。
  22. Python单元测试框架 PyUnit
  授权协议:Python
  开发语言:Python
  操作系统:跨平台
  PyUnit 详细介绍
  Python单元测试框架(The Python unit testing framework),简称为PyUnit, 是Kent Beck和Erich Gamma这两位聪明的家伙所设计的 JUnit 的Python版本。 而JUnit又是Kent设计的Smalltalk测试框架的Java版本。它们都是各自语言的标准测试框架。
  23.C/C++单元测试框架 CppUTest
  授权协议:BSD
  开发语言:C/C++
  操作系统:跨平台
  CppUTest 详细介绍
  CppUTest 是一个功能全面的测试框架。
  CppUTest是为了支持在多种操作系统上开发嵌入式软件而特别设计的。CppUTest的宏被设计成不需要了解C++也可以写测试用例。这使得C程序员更容易用这个测试框架。
  CppUTest只使用C++语言中主要的那部分子集,这种选择很好地适应了那些编译器不能完全支持全部C++语言特性的嵌入式开发。你会看到用Unity和CppUTest写出的单元测试几乎一模一样。你当然可以选择任意一个测试框架来进行你的产品开发。
  24.C++单元测试框架 CppUnit
  授权协议:未知
  开发语言:C/C++
  操作系统:跨平台
  CppUnit 详细介绍
  CppUnit 是个基于 LGPL 的开源项目,最初版本移植自 JUnit,是一个非常优秀的开源测试框架。CppUnit 和 JUnit 一样主要思想来源于极限编程(XProgramming)。主要功能就是对单元测试进行管理,并可进行自动化测试。
  测试驱动开发(TDD)是以测试作为开发过程的中心,它坚持,在编写实际代码之前,先写好基于产品代码的测试代码。开发过程的目标就是首先使测试能够通 过,然后再优化设计结构。测试驱动开发式是极限编程的重要组成部分。XUnit,一个基于测试驱动开发的测试框架,它为我们在开发过程中使用测试驱动开发 提供了一个方便的工具,使我们得以快速的进行单元测试。XUnit的成员有很多,如JUnit,PythonUnit等。CppUnit 即是XUnit家族中的一员,它是一个专门面向C++的测试框架。
  25.Ada语言的单元测试 AUnit
  授权协议:未知
  操作系统:跨平台
  AUnit 详细介绍
  AUnit 是 Ada 编程语言的单元测试工具,类似于 JUnit。
  26.C单元测试框架 zCUT
  单元测试工具
  授权协议:GPL
  开发语言:C/C++
  操作系统:跨平台
  软件作者:zbaitu
  zCUT 详细介绍
  C单元测试框架。
  特点:
  C语言实现。clang编译。std=gnu89。
  使用宏简单地注册case, suite,丰富的断言,风格类似google test。
  良好的结果输出。
  zBaitu / zCUT
  27. EJB测试工具 Ejb3Unit
  授权协议:未知
  开发语言:Java
  操作系统:跨平台
  Ejb3Unit 详细介绍
  Ejb3Unit 是一个无需EJB 容器的 EJB 3.0 的单元测试框架,扩展于 JUnit ,为所有的 EJB 项目提供自动化测试的工具
  28. PerlUnit
  授权协议:未知
  开发语言:Perl
  操作系统:未知
  PerlUnit 详细介绍
  JUnit的Perl版
  29.PythonUnit
  授权协议:未知
  开发语言:Python
  操作系统:未知
  PythonUnit 详细介绍
  JUnit的Python版
  30.C++ 单元测试框架 cipra
  授权协议:BSD
  开发语言:C/C++
  操作系统:跨平台
  cipra 详细介绍
  cipra 是一个简单的、兼容 TAP (Test Anything Protocol) 的 C++ 单元测试框架。100% 使用标准的 C++11 编写,只提供一组头文件,可很方便的在你的 C++11 项目中使用。

       上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号