Rake::TestTask 介绍
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 介绍的更多相关文章
- 总结 | 如何测试你自己的 RubyGem
如何测试一个Gem gem 开发完了,想要给别人用,那就需要测试啊,测试一个 gem 其实很简单,这里我们用 minitest 为例, rspec 也一样适用.先来看看我们当前这个 gem 的目录结构 ...
- Redmine(Ruby)配置经验
Redmine(Ruby)配置经验记录在配置Redmine邮件同步过程中遇到的各种问题与解决方法 1. 如何安装Redminehttp://www.redmine.org/projects/redmi ...
- web自动化测试:watir+minitest(四)
脚本连跑: rake是ruby中的一个构建工具,和make很像.允许用ruby来写rakefile. 我们使用rake以任务的方式来运行我们的脚本集. 新建Rakefile文件,写入如下内容: req ...
- [转]Git介绍
Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版 本控制工具可以对开发产生如此之多的影响,文章分为两部分, ...
- [转] Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine
Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine Trac是一个轻量级的软件项目管理环境,如果在工作中涉及一个开发团队的管理并且关心项目管理工具的话,相信都在 Trac. ...
- 介绍开源的项目管理系统-Redmine
介绍开源的项目管理系统-Redmine 分类: Redmine2009-06-01 10:12 1047人阅读 评论(0) 收藏 举报 项目管理subversionphpmyadminrailsaut ...
- Centos 7 Puppet之foreman介绍安装测试
一.简介 1.前言(引用一下网上的资料) 随着企业的 Linux 系统数量越来越多,管理问题便成为一个相对麻烦并需要急 迫解决的问题,这里有 2 个 Key Message:1)统一管控体系非常重要, ...
- Spring 使用介绍(十二)—— Spring Task
一.概述 1.jdk的线程池和任务调用器分别由ExecutorService.ScheduledExecutorService定义,继承关系如下: ThreadPoolExecutor:Executo ...
- rails rake和示例
一篇看到的讲解得不错的文章 http://blog.csdn.net/clskkk2222/article/details/6735365 这里还有一些例子: Rake Documentation R ...
随机推荐
- 【js & jquery】遮罩层实现禁止a、span、button等元素的鼠标事件
刚才在写一个界面,其中为了考虑背景图片的缘故,所以没用Button而是用的a标签 在点击之后应该禁用掉a元素,禁用对于button比较容易,加一个disabled就可以了 但是对于a却没有太好的办法, ...
- linux动态库编译和使用详细剖析
引言 重点讲述linux上使用gcc编译动态库的一些操作.并且对其深入的案例分析.最后介绍一下动态库插件技术, 让代码向后兼容.关于linux上使用gcc基础编译, 预编译,编译,生成机械码最后链接输 ...
- goto语句 switch语句
goto语句 #include <iostream> using namespace std; int main() { int i = 1; number: i++; std::cout ...
- SQL0294N 容器已在使用中。 SQLSTATE=42730
在建立数据库后,建立表空间时,出现如下错误: CREATE TABLESPACE TABLESAPCE_NAME PAGESIZE 32K MANAGED BY SYSTEM USING ('E:\D ...
- Swift global function(count indexOfObject contains...)
当你在使用Swift时会发现一些常用的函数不!见!了! 比如 String: s.count() s.contains() Array: a.indexOfObeject(t:<T> ...
- Linux rsync 同步
rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用.本文主要讲述的是如何自架rsync服务器,以实现文件传输.备份和镜像.相对tar ...
- LoadRunner - 当DiscuzNT遇上了Loadrunner(下) (转发)
当DiscuzNT遇上了Loadrunner(下) 在之前的两篇文章中,基本上介绍了如何录制脚本和生成并发用户,同时还对测试报告中的几个图表做了简单的说明.今天这篇文章做为这个系列的最后一篇,将会介绍 ...
- viewport使用 html5
viewport 语法介绍: 01 02 width 控制 viewport 的大小,可以指定的一个值或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的 ...
- xml数据读 swift
// // ViewController.swift // xml读写 // // Created by mac on 15/7/14. // Copyright (c) 2015年 fangyuha ...
- Sprint计划会议1
会议时间:4.15.晚9点 会议地点:学一食堂2楼 会议进程 • 首先我们讨论了实验第一个Sprint1要实现的功能(用户登录及信息录入).• 之后对任务进行了认领.• 最后每个人对自己的任务进行 ...