And*_*rew 47 installation rspec ruby-on-rails minitest ruby-on-rails-3
我是一个相当新手的测试者,但一直试图在Rails中更好地使用TDD.
RSpec工作得很好,但我的测试很慢.我听说MiniTest速度要快得多,MiniTest/Spec DSL与我以前习惯使用RSpec的方式非常相似,所以我想我会试一试.
但是,我无法在网上找到任何提供如何设置和运行Minitest的演练.我学会了如何从RSpec书中测试,我不知道Test :: Unit或MiniTest应该如何工作.我在我的gemfile中有gem,我写了几个简单的测试,但我不知道在哪里放或者如何运行它们.我认为这是显而易见的事情之一,没有人愿意把它写下来......
任何人都可以向我解释如何设置一些Minitest/spec文件并让它们运行所以我可以比较Rspec的性能?
编辑
具体来说,这些是我最需要知道的基础知识:
rspec spec或者rspec path/to/file_spec.rb,我错过了什么?谢谢!
Pat*_*ick 40
这个问题类似于如何使用minitest运行所有测试?
使用Ruby 1.9.3和Rake 0.9.2.2,给出如下目录布局:
Rakefile
lib/alpha.rb
spec/alpha_spec.rb
Run Code Online (Sandbox Code Playgroud)
这alpha_spec.rb可能是这样的:
require 'minitest/spec'
require 'minitest/autorun' # arranges for minitest to run (in an exit handler, so it runs last)
require 'alpha'
describe 'Alpha' do
it 'greets you by name' do
Alpha.new.greet('Alice').must_equal('hello, Alice')
end
end
Run Code Online (Sandbox Code Playgroud)
这是 Rakefile
require 'rake'
require 'rake/testtask'
Rake::TestTask.new do |t|
t.pattern = 'spec/**/*_spec.rb'
end
Run Code Online (Sandbox Code Playgroud)
你可以跑
rake testruby -Ilib spec/alpha_spec.rb我不知道使用spec_helper.rbminitest是否常见.似乎没有方便的方法来加载一个.将其添加到Rakefile:
require 'rake'
require 'rake/testtask'
Rake::TestTask.new do |t|
t.pattern = 'spec/**/*_spec.rb'
t.libs.push 'spec'
end
Run Code Online (Sandbox Code Playgroud)
然后spec/spec_helper.rb可以包含各种多余的东西:
require 'minitest/spec'
require 'minitest/autorun'
require 'alpha'
Run Code Online (Sandbox Code Playgroud)
并spec/alpha_spec.rb用以下内容替换冗余部分:
require 'spec_helper'
Run Code Online (Sandbox Code Playgroud)
rake testruby -Ilib -Ispec spec/alpha_spec.rb请注意, watchr 或 spork 不是运行测试的要求。它们为进行自动测试提供了便利。但是,您可以运行一组 MiniTest 测试的最基本方法是使用 ruby 本身:
$ ruby myfileoftests.rb
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12309 次 |
| 最近记录: |