1. ホーム
  2. ruby

[解決済み] rspecでテストグループを無効にする?

2022-10-16 16:59:54

質問

あるテスト仕様で describes クラスがあり、その中にさまざまな contexts があり、それぞれに様々な it ブロックがあります。

を無効化する方法はありますか? context を一時的に無効にする方法はありますか?

を追加してみましたが pending "temporarily disabled" の中で一番上に context を無効にしたいのですが、spec を実行したときに保留中のものが表示されましたが、その後、残りのテストを実行し続けました。

これは、私がなんとなく持っていたものです。

describe Something
  context "some tests" do
    it "should blah" do
      true
    end
  end

  context "some other tests" do
    pending "temporarily disabled"

    it "should do something destructive" do
      blah
    end
  end
end

が、私が言ったように、保留中の呼び出しの下でテストを実行するようになっただけです。

検索してみると、次のようなものが見つかりました。 メーリングリスト スレッド で、rspec の作成者 (?) が、私が実行している rspec 2 でそれが可能だと言っています。確かにうまくいったのでしょうが、以下のテストをすべて無効にするという期待通りの効果は得られませんでした。 pending の呼び出しを無効にします。

代替手段があるのでしょうか、それとも私のやり方が間違っているのでしょうか?

どのように解決するのですか?

仕様のツリーを無効化するには RSpec 3 ができます。

before { skip }
# or 
xdescribe
# or 
xcontext

メッセージを追加するには スキップ を追加すると、出力に表示されます。

before { skip("Awaiting a fix in the gem") }

RSpec 2 :

before { pending }