软件测试工具之开源单元测试工具汇总
凌雪 2018-10-09 来源 :网络 阅读 935 评论 0

摘要:本文将带你了解软件测试工具之开源单元测试工具汇总,希望本文对大家学测试工具有所帮助

本文将带你了解软件测试工具之开源单元测试工具汇总,希望本文对大家学测试工具有所帮助


开源单元测试工具/框架汇总
   
    下面列出了30款1,不分先后顺序。
   
   
   
    1. NoSQL的单元测试工具 NoSQLUnit
   
    单元测试工具
   
    授权协议:Apache
   
    开发语言:Java
   
    操作系统:跨平台
   
    NoSQLUnit 详细介绍
   
    NoSQLUnit 是一个 JUnit   的扩展,用来为那些使用了 NoSQL 后端的应用提供单元测试和集成测试的工具。
   
    使用示例:
   
   
   
    @UsingDataSet(locations="my_data_set.json", loadStrategy=LoadStrategyEnum.REFRESH)  
    @ShouldMatchDataSet(location="my_expected_data_set.json")12
   
   
   
    lordofthejars / nosql-unit
   
   
   
    2. JavaScript单元测试工具 JsTestDriver
   
    单元测试工具
   
    授权协议:Apache
   
    开发语言:JavaScript
   
    操作系统:跨平台
   
    sTestDriver 详细介绍
   
    JsTestDriver是一个JavaScript单元测试工具,易于与持续构建系统相集成并能够在多个浏览器上运行测试轻松实现TDD风格的开发。当在项目中配置好js-test-driver以后,如同junit测试java文件一般,js-test-driver可以直接通过直接运行js文件,来对js文件单元测试。
   
   
   
   
   
    3. C++单元测试工具 QTRunner
   
    单元测试工具
   
    授权协议:GPLv3
   
    开发语言:C/C++
   
    操作系统:跨平台
   
    QTRunner 详细介绍
   
    QTRunner 是一个用来运行多个单元测试并在一个GUI图形界面的应用程序中显示测试结果的软件。支持 QTestLib 和 GoogleTest 单元测试的执行,QTRunner 是基于 Qt 库开发的跨平台测试工具。
   
   
   
   
   
    4. JavaScript 单元测试工具 Venus
   
    单元测试工具
   
    授权协议:Apache 2.0
   
    开发语言:JavaScript
   
    操作系统:跨平台
   
    开发厂商:Linkedin
   
    Venus 详细介绍
   
    Venus 是一个 JavaScript   (JS)的测试工具,可以简化运行单元测试。当你在 JS 开发一个基于浏览器的项目时,你想创建单元测试并频繁地运行它们。通常,你会用一些库比如 Mocha 或 Jasmine,写一个单元测试,这些库可以让你定义测试用例,并提供 API 来编写判断。
   
    我们通过创建一个工具,可以让你更轻松地与现有的库一起工作。一下是 Venus 的主要好处:
   
   
    在你的测试使用 Simple   annotations, 来指定你要使用的测试库,你要测试的文件,其它文件依赖,以及测试工具模板
    通过使用 PhantomJS 运行命令行,直接快速运行你的基于浏览器的测试
    在多浏览器的命令行中同时运行你的测试(本地运行或远程)
    集成持续集成工具(Selenium   Grid + Travis CI)
   
   
   
   
    linkedin / venus.js
   
   
   
    5.Flex 单元测试工具 Fluint
   
    单元测试工具
   
    授权协议:MIT
   
    开发语言:ActionScript
   
    操作系统:跨平台
   
    Fluint 详细介绍
   
    Fluint是一个 Flex 单元测试工具,对于Flex单元和集成测试,“Fluint”非常简洁。它是为编写Flex2或Flex3应用的开发者提供的测试框架,无论这些应用是通过Adobe Flash Player在浏览器中部署的,还是通过Adobe AIR在桌面上部署的。
   
    Fluint最初是作为Digital Primates的内部工具开发的,用以测试一些非常大的项目。随着Flex社区对其需求的不断增长,Digital Primates决定把其发布为一个开源项目。尽管针对Flex有其他的单元测试解决方案,按照Labriala的说法,Fluint仍填补了重要空白。
   
   
   
    6. JavaScript 单元测试工具   Buster.JS
   
    单元测试工具
   
    授权协议:BSD
   
    开发语言:JavaScript   查看源码»
   
    操作系统:跨平台
   
    Buster.JS 详细介绍
   
    Buster.JS 是 JavaScript 的单元测试工具包,**
   
   
    **浏览器测试工具包;**Buster.js 可以自动的在浏览器上测试,像 JsTestDriver ;QUnit 风格 静态 HTML 页面测试 ; 在一些不知名的浏览器上测试,像 PhantomJS 和 jsdom ;
    Node.js 测试工具包;
    灵活; Buster.js 里面几乎含有所有的公共 API 。你可自己书写* 测试报告* 来自定义   buster 的输出(buster 里面已经有 xUnit XML, traditional dots, specification, tap, TeamCity ),也可以编写扩展其他测试框架(buster 里面已经有 buster-jstestdriver ),添加你自己的测试语法(xUnit 和 BDD);
    更多相关信息请看 the overview 。
   
   
   
   
    7. 存储过程单元测试工具 SQLUnit
   
    单元测试工具
   
    授权协议:未知
   
    开发语言:Java
   
    操作系统:跨平台
   
    SQLUnit 详细介绍
   
    SQLUnit是一个用于对存储过程进行单元测试的工具,其实也可以用于做针对数据库数据、性能的测试等,延续了xUnit家族的一贯特性和风格,只不过它的测试是以xml的方式来编写,但原则仍然和xUnit家族其他产品一样,强调的是输出和预期的比较,SQLUnit的文档比较的少,由于官方站上并没有提供类似其他开源工具的quick start guide,就写了这篇quick start guide以便大家快速的使用sqlunit,至于SQLUnit的高级用法还是得去多看看sqlunit.sf.net官方站上的文档。
   
   
   
    8.C++单元测试工具   ECUT
   
    Eclipse插件 测试工具 单元测试工具
   
    授权协议:EPL
   
    开发语言:C/C++
   
    操作系统:跨平台
   
    ECUT 详细介绍
   
    ECUT (Eclipse C++   Unit Testing) 项目将 CppUnit 和 Eclipse CDT   开发工具集成起来,提供更好的无缝的单元测试支持,类似   JUnit 和 JDT 一样。该项目也允许跟其他的 C++单元测试框架进行集成。
   
   
   
   
   
    9.Qt单元测试工具 QTestlib
   
    单元测试工具
   
    授权协议:未知
   
    开发语言:C/C++
   
    操作系统:跨平台
   
    QTestlib 详细介绍
   
    Trolltech公司提供的QTestlib框架,是一种针对基于QT编写的程序或库的单元测试工具。QTestLib提供了单元测试框架的基本功能,并提供了针对GUI测试的扩展功能。设计QTestLib的目标是为了简化QT程序或库的单元测试工作。
   
   
   
   
      特性
  详细描述
   
   
   
      轻量级
  QTestlib   只包含 6000行代码和 60个导出符号。
   
   
      自包含
  对于非GUI测 试,QTestlib只需要Qt核心库的几   个符号。
   
   
      快速测试
  QTestlib不需要特殊的测试执行程序,不需要为测试而进行特殊的注册。
   
   
  数据驱动测试
  一个测试程序可以在不同的测试数据集上执行多次。
   
   
      基本的GUI测 试
  QTestlib提供了模拟鼠标和键盘事件的功能。
   
   
      IDE友好
  QTestlib的输出信息可以被Visual Studio和KDevelop解析。
   
   
      线程安全
  错误报告是线程安全的、原子性的。
   
   
      类型安全
  对模板进行了扩展使用,防止由隐式类型转换引起的错误。
   
   
  易扩展
  用户自定义类型可以容易地加入到测试数据和测试输出中。
   
   
   
   
   
   
    10.单元测试维护工具 Unitils
   
    单元测试工具
   
    授权协议:Apache
   
    开发语言:Java
   
    操作系统:跨平台
   
    Unitils 详细介绍
   
    Unitils这个Java开源类包的目的是让单元测试变得更加容易和可维护。Unitils构建在DBUnit与EasyMock项目之上并与 JUnit和TestNG相结合。支持数据库测试,支持利用mock对象进行测试并提供与Spring和Hibernate相集成。Unitils设计成   以一种高度可配置和松散偶合的方式来添加这些服务到单元测试中。
   
    在进行数据库测试时能够:
   
    自动维护和强制关闭单元测试数据库(支持Oracle,Hsqldb,MySql,DB2),
   
    简化单元测试数据库连接的设置,
   
    简化利用DBUnit测试数据的插入,
   
    简化Hibernate session管理,
   
    自动测试与数据库相映射的Hibernate映射对象。
    在利用Mock对象进行测试时能够:
   
    简化EasyMock mock对象创建,
   
    简化mock对象注入,利用反射等式匹配EasyMock参数。
    在与Spring集成时易于把spring管理的bean注入到单元测试中,支持在单元测试中使用一个用Spring配置的Hibernate SessionFactory。
   
   
   
    11. Java单元测试框架 JUnit  
   
    单元测试工具
   
    授权协议:CPL
   
    开发语言:Java
   
    操作系统:跨平台
   
    JUnit 详细介绍
   
    JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich   Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中为最成功的一个。 JUnit有它自己的JUnit扩展生态圈。
   
    多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
   
   
   
    在线Javadoc://www.ostools.net/apidocs/apidoc?api=junit-4.10
   
   
   
    12.C单元测试工具 greatest
   
    单元测试工具
   
    授权协议:未知
   
    开发语言:C/C++
   
    操作系统:跨平台
   
    greatest 详细介绍
   
    greatest 是一个 C   语言的单元测试系统,只需要一个文件支持。示例代码:
   
   
   
    $ cat simple.c
#include "greatest.h"
   
    TEST x_should_equal_1() {
        int x = 1;
    ASSERT_EQ(1, x);                              /* default   message */
    ASSERT_EQm("yikes, x doesn't   equal 1", 1, x); /* custom message */
    PASS();
    }
   
    SUITE(the_suite) {
        RUN_TEST(x_should_equal_1);
    }
   
    /* Add definitions that need to be in the test runner's main file. */
    GREATEST_MAIN_DEFS();
   
    int main(int argc, char **argv) {
        GREATEST_MAIN_BEGIN();      /* command-line arguments,   initialization. */
    RUN_SUITE(the_suite);
    GREATEST_MAIN_END();        /* display results */
    }
    $ make simple && ./simple
    cc -g -Wall -Werror -pedantic      simple.c   -o simple
   
    * Suite the_suite:
    .
    1 tests - 1 pass, 0 fail, 0 skipped (5 ticks, 0.000 sec)
   
    Total: 1 tests (47 ticks, 0.000 sec)
    Pass: 1, fail: 0, skip:   0.12345678910111213141516171819202122232425262728293031
   
   
   
    silentbicycle / greatest
   
   
   
    13.单元测试检测工具 PIT
   
    单元测试工具
   
    授权协议:Apache
   
    开发语言:Java
   
    操作系统:跨平台
   
    PIT 详细介绍
   
    PIT 是一个快速的 Java   系统突变检测系统,可用来测试单元测试的有效性,测试单元测试的覆盖。
   
   
   
   
   
    14.数据库单元测试工具 DbUnit
   
    单元测试工具
   
    授权协议:未知
   
    开发语言:Java
   
    操作系统:跨平台
   
    DbUnit 详细介绍
   
   
   
    DbUnit 使您可以容易地执行 JDBC   查询并获取它们的值。使用 DbUnit JDBC 包装器而不是纯粹的 JDBC 有几个理由:
   
   
    可以用 SQL 查询创建一个 Dataset ,并使用 DbUnit 的 assertion(断言)方法(在后面描述)。
    可以用 SQL 查询创建一个 Dataset ,并将它保存为一个 FlatXmlDataSet   。可以在以后将它重新装载到数据库中。
    可以容易地从任何行中获取列的内容,无需进行迭代。
   
   
   
   
    15.Java GUI单元测试工具   Abbot
   
    GUI 测试工具 单元测试工具
   
    授权协议:未知
   
    开发语言:Java
   
    操作系统:跨平台
   
    Abbot 详细介绍
   
    Abbot 是一个简单的用来对 Java 的图形界面应用程序进行功能和单元测试的框架。主要功能包括模拟用户行为、检查组件状态,测试过程会被记录下来并可以进行回放。
   
   
   
    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));1234567891011121314
   
   
   
    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!"));
  }
    }123456789101112131415
   
   
   
    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   项目中使用。
   
   
   
    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标软件测试之测试工具频道。

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程