如何使用RSpec :: Core :: RakeTask初始化RSpec Rake任务?
require 'rspec/core/rake_task' RSpec::Core::RakeTask.new do |t| # what do I put in here? end
初始化函数记录在
http://rubydoc.info/github/rspec/rspec-core/RSpec/Core/RakeTask#initialize-instance_method没有很好的记录;它只是说:
- (RakeTask) initialize(*args, &task_block) A new instance of RakeTask
我应该为* args和& task_block添加什么?
我跟随已经开始使用RSpec与Rake结合为PHP项目构建一些ruby自动化的人的脚步。我习惯使用没有Rake的RSpec,所以我不熟悉语法。
谢谢, -Kevin
答案 0 :(得分:6)
以下是我的Rakefile示例:
require 'rspec/core/rake_task'
task :default => [:spec]
desc "Run the specs."
RSpec::Core::RakeTask.new do |t|
t.pattern = "spec.rb"
end
desc "Run the specs whenever a relevant file changes."
task :watch do
system "watchr watch.rb"
end
这允许从Rake
运行spec.rb文件中定义的规范答案 1 :(得分:2)
这是我的rakefile的样子
gem 'rspec', '~>3'
require 'rspec/core/rake_task'
task :default => :spec
desc "run tests for this app"
RSpec::Core::RakeTask.new do |task|
test_dir = Rake.application.original_dir
task.pattern = "#{test_dir}/*_spec.rb"
task.rspec_opts = [ "-I#{test_dir}", "-I#{test_dir}/source", '-f documentation', '-r ./rspec_config']
task.verbose = false
end
你可以从你的测试目录'rake',它将运行名为[something] _spec.rb的所有测试 - 它应该适用于不同的测试目录(例如不同的项目);如果你有一个单独的目录中的源代码(例如在上面的代码中,一个名为'/ source'的子目录将会提取它们。显然,你可以将源目录更改为你想要的。
这是我使用的rspec_config文件 - 您可以在此处添加自己的设置:
RSpec.configure do |c|
c.fail_fast = true
c.color = true
end