1

Ruby スクリプトにアサーションを配置しています。

これらの各アサーションには、アサーションを説明するメッセージもあります。

だから私はこれに関連して2つの質問があります

  1. テストの進行に合わせて、各アサートに関連付けられたメッセージを表示したいと考えています。現在、メッセージは何かが失敗した場合にのみ表示されます

  2. アサーションが失敗すると、テスト全体が終了します。1 つのアサーションが失敗してもテストを続行するにはどうすればよいですか?

私が使用しているサンプルコード

assert_match("hey", "hey this is a test", "The word exists in the string")

したがって、出力は現在次のようになります-

ruby ruby11.rb -v v
Loaded suite ruby
Started
test_ruby(Ruby): 
F

Finished in 40.555587 seconds.

  1) Failure:
test_ruby11(Ruby11) [ruby11.rb:73]:
Text box not displayed
<false> is not true.

1 tests, 3 assertions, 1 failures, 0 errors

そして、私はそれが次のようになりたい

ruby ruby.rb -v v
Loaded suite ruby
Started
test_ruby(Ruby): 
F

ok 1 - First test successful
ok 2 - The text is displayed
ok 3 - The image is present
not ok 4 - Text box not displayed
ok - The picture is visible

Finished in 40.555587 seconds.

  1) Failure:
test_ruby(Ruby) [ruby11.rb:73]:
Text box not displayed
<false> is not true.

1 tests, 4 assertions, 1 failures, 0 errors

したがって、上記の目的の表示では、すべてのアサーション状態は、テストが実行されたときに表示されます。(perl の TAP のようなもの)。私はルビーに慣れていないので、何か基本的なことが間違っていると確信しています。

ruby ruby.rb -v vまた、スクリプトの実行中に詳細パラメーターを試しました。しかし、それも役に立ちません。

助けていただければ幸いです

4

2 に答える 2

0

これは私が行う方法ですが、次のことを考慮してください。

  1. テストごとに 1 つのアサーションを持ちます。動作の個別のチャンクに対して、特定の各テストを追加する必要があります。たとえば、画像が表示されずにテキストが表示される可能性がある場合は、テストtest_text_appearstest_image_appearsテストを分離します。テストごとに 1 つのアサーションがあるということは、何かが壊れたときに、多くのアサーションを含むテストの最初のアサーションだけでなく、失敗したすべてのアサーションを確認できることを意味します。
  2. のように、何をすべきかを説明するテスト名を付けtest_text_appearsます。
  3. どのような失敗メッセージが表示されるべきか - ここで何が良いアイデアなのか 100% 確信が持てないので、別の質問を開きました: testunit または他の nunit スタイル フレームワークの良い失敗メッセージとは何ですか?
于 2011-12-11T23:11:55.837 に答える
-2

特にTAP出力の選択肢はあまりありません。実行したテスト フレームワークの 1 つはBaconで、これは TAP 出力を備えた RSpec クローンでしたが、もうアクティブではないようです。

継続的インテグレーションとの互換性が必要な場合は、ci_reporter gem を使用してテスト結果 ( Test::Unit と RSpec の両方から) を JUnit XML 形式に変換し、Jenkins/Hudson、Bamboo、およびその他の JUnit で動作させることができます。 -aware CI サーバー。

ただし、RSpec とは異なり、Test/Unit には、合格したテストを報告しないという制限があります。RSpec HTML フォーマッタを介して Test/Unit を実行することについての議論があり、合格したテストの名前がここに含まれます。

2015 年の更新: 現在人気が高まっており、多くのフォーマッター プラグインがあり、非常に柔軟で拡張可能な MiniTest を調べることをお勧めします。

于 2011-12-09T20:26:20.733 に答える