2011-10-12 23 views
10

Iは、前中にテストグループ名(および祖先)を表示できるようにしたい(すべて)方法:rspecでメタデータにアクセスするにはどうすればいいですか(:all)?

describe "My awesome app" do 
    before(:all) do 
    puts running_example_group.metadata[:full_description] # <- what I'm imagining 
    ... 
    done 
    ... 
    describe "awesome widget" do 
    before (:all) do 
     puts running_example_group.metadata[:full_description] # <- what I'm imagining 
     ... 
    done 
    ... 
    done 
done 

アイデアは、その出力を生成するある:

My awesome app 
My awesome app awesome widget 

このデータは "it"句の中で利用可能ですが、私は前に(:すべて)それを理解することはできません。それは利用できませんか?私はちょっとばかな間違いをしていますか?

+0

https://github.com/rspec/rspec-core/issues/6は機能が存在しないことを示唆していますか?または、before(:all)のメタデータを設定するだけでは実行できませんでしたか? –

答えて

9

before(:all)ブロック内には、「実行中の例」はありませんが、RSpec::Core::ExampleGroupからメタデータにアクセスすることはできます。ここでは、さまざまなスコープからメタデータにアクセスする方法の例です:詳細については

describe "My app", js: true do 

    context "with js set to #{metadata[:js]}" do 
    before :all do 
     puts "in before block: js is set to #{self.class.metadata[:js]}" 
    end 

    it "works" do 
     puts "in example: js is set to #{example.metadata[:js]}" 
    end 
    end 

end 

this comment in rspec/rspec-core#42をご覧ください。

+0

クール。私は現在のプロジェクトでrspecを使用していないので、他の誰かがこの作品を確認できれば、その答えを受け入れるでしょう。 –

+0

あるいは... ...)あなたは単に例を保存し、 'gem install rspec'を実行し、' rspec example_spec.rb'を介してその仕様を実行することができます。 – rubiii

+0

ハ!私が試してみます。私はRubyをインストールしたコンピュータをつかむ必要がありますが、私はそれがあると思います。もし私が自分の環境でふざけてしまうと、私はあきらめてしまうかもしれません。 =) –

関連する問題