Rake::TestTask 介绍

通常我们创建一个新的项目的时候,会建立一个test或者spec的文件夹来存放测试的文件,运行这些测试需要单独的命令,比如在项目目录下执行rspec .或者ruby test.rb等等,这些测试的工具中大多也都提供了更方便的方式来运行这些测试,但是如果你喜欢用Rake的话,那就有另外一个选择Rake::TestTask

先上代码:

    require "rake/testtask"

    Rake::TestTask.new do |t|
t.libs << "test"
t.pattern = "test/*_test.rb"
t.verbose = true
end

将以上代码保存或添加到项目目录中的Rakefile,然后在这个目录下执行rake test,你就可以看到如下输出(这里我用的测试框架是Minitest):

    /home/lizhe/.rvm/rubies/ruby-2.2.2/bin/ruby -I"lib:test"             "/home/lizhe/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/rake/rake_test     _loader.rb" "test/person_test.rb"
Run options: --seed 535 # Running: . Finished in 0.000558s, 1793.5482 runs/s, 1793.5482 assertions/s. 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips

如果去掉最上面代码中的t.verbose = true的话:

    require "rake/testtask"

    Rake::TestTask.new do |t|
t.libs << "test"
t.pattern = "test/*_test.rb"
end

则输出结果就不会显示执行的ruby命令,如下:

    Run options: --seed 17527

    # Running:

    .

    Finished in 0.001629s, 613.9689 runs/s, 613.9689 assertions/s.

    1 runs, 1 assertions, 0 failures, 0 errors, 0 skips

这里再介绍一下Rake::TestTask的配置选项:

  • libs会被添加到$LOAD_PATH中;
  • pattern 测试文件的名称匹配,还有另外一个叫做test_files,这两个使用哪一个都可以,如果同时使用的话,会合并两者;
  • verbose 输出这个Rake::TestTask执行的具体Ruby命令;
  • options 指定给测试框架的参数,类型为数组,也可以通过传入TESTOPTS命令行参数达到相同的目的;
  • ruby_opts 执行ruby命令时的参数,类型为数组,比如可以在指定为-rtesthelper,避免每个测试文件重复require "test_helper"
  • name Rake Task的名称,默认是test

还有一点,在我们执行rake test的时候,是可以传入一些参数的,比如我执行执行test/dummy_test.rb这个测试,那么就可以指定TEST参数:

rake test TEST=test/dummy_test.rb

还可以通过TESTOPTS给你使用的测试框架传入参数,比如Minitest有-v和-p两个参数,那么就可以这样传进去:

rake test TESTOPTS="-vp"

参考链接:http://ruby-doc.org/stdlib-2.2.2/libdoc/rake/rdoc/Rake/TestTask.html

本文系OneAPM工程师编译整理。OneAPM是中国基础软件领域的新兴领军企业。专注于提供下一代应用性能管理软件和服务,帮助企业用户和开发者轻松实现:缓慢的程序代码和SQL语句的实时抓取。想阅读更多技术文章,请访问OneAPM官方技术博客

Rake::TestTask 介绍的更多相关文章

  1. 总结 | 如何测试你自己的 RubyGem

    如何测试一个Gem gem 开发完了,想要给别人用,那就需要测试啊,测试一个 gem 其实很简单,这里我们用 minitest 为例, rspec 也一样适用.先来看看我们当前这个 gem 的目录结构 ...

  2. Redmine(Ruby)配置经验

    Redmine(Ruby)配置经验记录在配置Redmine邮件同步过程中遇到的各种问题与解决方法 1. 如何安装Redminehttp://www.redmine.org/projects/redmi ...

  3. web自动化测试:watir+minitest(四)

    脚本连跑: rake是ruby中的一个构建工具,和make很像.允许用ruby来写rakefile. 我们使用rake以任务的方式来运行我们的脚本集. 新建Rakefile文件,写入如下内容: req ...

  4. [转]Git介绍

    Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版 本控制工具可以对开发产生如此之多的影响,文章分为两部分, ...

  5. [转] Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine

    Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine ​Trac是一个轻量级的软件项目管理环境,如果在工作中涉及一个开发团队的管理并且关心项目管理工具的话,相信都在 ​Trac. ...

  6. 介绍开源的项目管理系统-Redmine

    介绍开源的项目管理系统-Redmine 分类: Redmine2009-06-01 10:12 1047人阅读 评论(0) 收藏 举报 项目管理subversionphpmyadminrailsaut ...

  7. Centos 7 Puppet之foreman介绍安装测试

    一.简介 1.前言(引用一下网上的资料) 随着企业的 Linux 系统数量越来越多,管理问题便成为一个相对麻烦并需要急 迫解决的问题,这里有 2 个 Key Message:1)统一管控体系非常重要, ...

  8. Spring 使用介绍(十二)—— Spring Task

    一.概述 1.jdk的线程池和任务调用器分别由ExecutorService.ScheduledExecutorService定义,继承关系如下: ThreadPoolExecutor:Executo ...

  9. rails rake和示例

    一篇看到的讲解得不错的文章 http://blog.csdn.net/clskkk2222/article/details/6735365 这里还有一些例子: Rake Documentation R ...

随机推荐

  1. c语言内存分配-malloc

    malloc 原型:(原来返回类型是char) extern void *malloc(unsigned int num_bytes); 头文件: #include <stdlib.h> ...

  2. Python学习教程(learning Python)--3.3.1 Python下的布尔表达式

    简单的说就是if要判断condition是真是假,Python和C语言一样非0即真,所以如果if的condition是布尔表达式我们可以用True或者非0数(不可是浮点数)表示真,用False或者0表 ...

  3. JavaWeb之 JSP基础

    什么是JSP JSP的全称是java server page, java服务页面.是提供java服务的页面~ 那么和Servlet有什么区别呢?JSP的页面既可以写java代码~也可以写html代码哦 ...

  4. VIM编辑器常用功能整理笔记

    vim编辑器 vi : visual Inertface 可视化接口 vim : vi improved 扩展版 语法着色 模式化编辑器: 编辑模式(命令模式): 默认模式 输入模式: 末行模式: 等 ...

  5. .NET开源工作流RoadFlow-系统布署中常见错误及处理方法

    1.未开启asp.net状态服务时会出现以下错误: 解决办法:开启ASP.NET STATE SERVICE服务 2.未开启应用程序池32位: 解决办法:启用32位

  6. Node.js:util.inherits 面向对象特性【原型】

    /** * Created by Administrator on 2014/9/4. */ var util = require('util'); function Base() { this.na ...

  7. IOS中 如何去除Tabview里面cell之间的下划线

    可以利用Tabview的separatorStyle属性来设置,选择其中的UITableViewCellSeparatorStyleNone 即可去除cell之间的下划线 self.tableView ...

  8. Openstack:ice-house安装过程

    #apt-get install ntpdpkg-reconfigure tzdata --> Asia -->Shuanghai #apt-get install python-mysq ...

  9. NSAttributedString之设置字间距与行间距

    // 调整行间距 NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithSt ...

  10. 【iOS】iOS消息推送机制的实现

    iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...