メインコンテンツまでスキップ

Rakeタスクの作成

RSpecには、いくつかの便利なオプションを備えたrakeタスクが付属しています。

以下のように、rescue節で囲むことをおすすめします。これにより、RSpecが使用できない環境(たとえば本番サーバー上)でRakefileを使用することができます。

begin
require 'rspec/core/rake_task'
RSpec::Core::RakeTask.new(:spec)
rescue LoadError
end

デフォルトオプションでスペックを実行する(コマンドを表示し、終了ステータスが0)

以下の内容で「Rakefile」という名前のファイルを作成します。

RSpec.describe "something" do
it "does something" do
# pass
end
end
(ruby(\d\.\d(.\d)?)?|rbx) -I\S+ [\/\S]+\/exe\/rspec
begin
require 'rspec/core/rake_task'

RSpec::Core::RakeTask.new(:spec)

task :default => :spec
rescue LoadError
# no rspec available
end
RSpec.describe "something" do
it "does something" do
fail
end
end
begin
require 'rspec/core/rake_task'

RSpec::Core::RakeTask.new(:spec) do |t|
t.fail_on_error = false
end

task :default => :spec
rescue LoadError
# no rspec available
end
RSpec.describe "something" do
it "does something" do
fail
end
end
begin
require 'rspec/core/rake_task'

RSpec::Core::RakeTask.new(:spec) do |t|
t.rspec_opts = "--tag fast"
end
rescue LoadError
# no rspec available
end
RSpec.describe "something" do
it "has a tag", :fast => true do
# pass
end

it "does not have a tag" do
fail
end
end
(ruby(\d\.\d(.\d)?)?|rbx) -I\S+ [\/\S]+\/exe\/rspec --pattern spec[\/\\*{,}]+_spec.rb --tag fast
begin
require 'rspec/core/rake_task'

RSpec::Core::RakeTask.new(:spec, :tag) do |t, task_args|
t.rspec_opts = "--tag #{task_args[:tag]}"
end
rescue LoadError
# no rspec available
end
RSpec.describe "something" do
it "has a tag", :fast => true do
# pass
end

it "does not have a tag" do
fail
end
end
(ruby(\d\.\d(.\d)?)?|rbx) -I\S+ [\/\S]+\/exe\/rspec --pattern spec[\/\\*{,}]+_spec.rb --tag fast