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. 007-python基础-pyc是什么

    3.1 解释型语言和编译型语言 计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序的时候,就需要一个"翻译机"来从事把高级语言转变成计算机能读懂的机器语言的过程.这个过程 ...

  2. SQL Server 一些关键字详解(二)

    1.LEFT JOIN 容易让人误解的地方 背景:因为在网上搜了下 LEFT JOIN 和 OUTER APPLY 的区别,时发现,有的网友解释为: 1) A   left  join  B  的连接 ...

  3. 数组(Array),二维数组,三维数组

    数组(Array):相同类型数据的集合就叫做数组. (一)定义数组的方法: A) type[] 变量名 = new type[数组中元素的个数] 例如: int[] a = new int[10] ; ...

  4. AppCan教你从零开始做开发

    经常收到类似这样的提问:新手开发APP,要怎么学?我有满屏幕的文档和视频,然而并没有什么卵用,因为我不知道该从哪看起……今天的主要内容是教大家,如何在AppCan移动平台创建应用,引擎插件选择.证书管 ...

  5. JavaScript高级程序设计之JSON

    IE8以下请求助神之Douglas Crockford:https://github.com/douglascrockford/json-js JSON是一种格式化的字符串,特别适合在网络上传输,由D ...

  6. python的内存管理

    1.在Python中,整数和短小的字符,Python都会缓存这些对象,以便重复使用.当我们创建多个等于1的引用时,实际上是让所有这些引用指向同一个对象. a = 1 b = 1 print hex(i ...

  7. simplexml_load_string获取xml节点里的属性值

    http://stackoverflow.com/questions/14359658/get-xml-attribute-using-simplexml-load-string 问: I am us ...

  8. [转]STUN和TURN技术浅析

    [转]STUN和TURN技术浅析 http://www.h3c.com.cn/MiniSite/Technology_Circle/Net_Reptile/The_Five/Home/Catalog/ ...

  9. 16.如何设置Quartus II Programmer,保护pof不被读出

    Program时,把security bit勾上,点击start 这样examine时就不能正确的读出pof 读出来的pof 除文件头外,其余的内容全为0 怎么样,大家试试!

  10. C++ STL find

    find 函数,复杂度O(n) 涉及一些 泛型编程 #include <iostream> #include <string.h> #include <string> ...