5

如何使用 RSpec::Core::RakeTask 初始化 RSpec Rake 任务?

需要'rspec/core/rake_task'

RSpec::Core::RakeTask.new 做 |t|
  # 我在这里放什么?
结尾

在http://rubydoc.info/github/rspec/rspec-core/RSpec/Core/RakeTask#initialize-instance_method记录的初始化函数 没有很好的记录;它只是说:

- (RakeTask) 初始化(*args, &task_block)

RakeTask 的新实例

我应该为 *args 和 &task_block 放什么?

我正在追随已经开始使用 RSpec 和 Rake 为 PHP 项目构建一些 ruby​​ 自动化的人的脚步。我习惯在没有 Rake 的情况下使用 RSpec,所以对语法不熟悉。

谢谢,-凯文

4

2 回答 2

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 文件中定义的规范

于 2013-06-10T14:51:54.170 回答
4

这就是我的 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
于 2015-11-21T14:22:23.103 回答