如何更简单的执行测试命令 - Rake::TestTask 介绍

2015-05-29 10:59:03 +08:00
 OneAPM


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

先上代码:

require "rake/testtask"
a
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

( 注:Running之前的()是不需要的,这里是因为Markdown的语法问题。)

如果去掉最上面代码中的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

( 注:Running之前的()是不需要的,这里是因为Markdown的语法问题。)

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

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

rake test TEST=test/dummy_test.rb

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

rake test TESTOPTS="-vp"

参考链接:

本文由OneAPM工程师原创文章 ,想阅读更多技术文章,请访问OneAPM官方技术博客

http://oneapm.com

3781 次点击
所在节点    Ruby on Rails
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/194609

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX