3

RSpec を使用して RESTful API をテストしています (Rails アプリではありません)。たくさんのテスト スイート (それぞれ 1 つの API) とテスト ケースがあります。タイトルの各テスト ケースのテスト ID を作成する簡単な方法があるかどうか疑問に思っています。そのため、チケット内のテスト ケースを簡単に参照したり、他のテスト ケースを参照したりできます。

例えば:

it "send request to /api/cart with GET - TC001" do
...
end

TC001 は私が言及した ID です。

または、RSpec で特定のテスト ケースを参照するためのより良い方法はありますか?

4

1 に答える 1

2

私の知る限り、RSpec はテスト ケースに ID を自動的に割り当てるツールを提供していませんが、それらを使用するためのいくつかのメカニズムを提供しています。

最も簡単なのは、質問にあるように、テスト ケース ID をit最初のパラメーターに追加することです。

describe Fixnum do
  it "should support + operator (TC001)" do
    (5 + 8).should == 13
  end
end

その後、 からの詳細な出力にテスト ケース ID が表示されrspec、ほとんどの場合に機能する方法で特定のテスト ケースをフィルタリングすることもできます。

$ rspec -f d -e TC001 specs/test.rb

Run options: include {:full_description=>/TC001/}

Fixnum
  should support + operator (TC001)

Finished in 0.00041 seconds
1 example, 0 failures

それだけでは不十分な場合は、テスト オプション タグのハッシュを使用して、テストのラベル付けと管理のための独自のスキームを作成することで、さらに進めることができます。

describe Fixnum do
  it "should support + operator", case_id: 'TC001' do
    (5 + 8).should == 13
  end
end

これは、次のようにフィルタリングできます。

$ rspec -f d -t case_id:TC001 specs/test.rb

Run options: include {:case_id=>"TC001"}

Fixnum
  should support + operator

Finished in 0.0004 seconds
1 example, 0 failures

ただし、タグ データは出力に表示されないことに注意してください。rspec実際、 gem がそのまま提供する出力オプションには表示されません。ただし、RSpec のカスタム フォーマッタや、テスト スイートの動作を制御するその他のコードでアクセスできます。したがって、これを使用して、テスト ケース ラベルなどを含む .csv などのカスタム レポートを作成したり、テスト ケースを追跡したり、データベース内のケースの成功/失敗の進化などを追跡したりできます。

于 2013-08-07T13:17:56.970 に答える