0

Ruby on Railsは、assert_selectから発生する「xをyで閉じようとする試みを無視する」という厄介な警告を表示することがあります。多くの場合、これらの警告は無効なHTMLの結果ですが、HTMLが有効であっても表示される場合があります。私の場合のエラーは、実行中に次のようになりますruby test/functional/my_controller_test.rb

..ignoring attempt to close div with h2
  opened at byte 8551, line 207
  closed at byte 9554, line 243
  attributes at open: {"class"=>"my_css_class", "id"=>"object_1"}
  text around open: "  \r\n  \r\n  \r\n  \r\n\r\n  <div class=\"my_css_class"
  text around close: "</a>\r\n      </h2>\r\n\r\n      <span"

ただし、h2タグを使用してdivを閉じる試みはありません。HTMLバリデーターを試しましたが、成功しませんでした。Gilesが言及した-W0パラメータは役立つようです-ruby -W0 test/functional/my_controller_test.rb警告は表示されなくなりましたが、これはでは機能しませんrake test:whatever。-W0は何をしますか、そしてどうすればそれを使用しないようにできますか?

4

2 に答える 2

3

テストヘルパー:

class ActionController::TestCase  
  include Devise::TestHelpers
  Paperclip.options[:log] = false
  Mocha::Deprecation.mode = :disabled

  #
  # kill verbsity
  #
  verbosity = $-v
  $-v = nil

end
于 2013-01-14T01:18:02.990 に答える
1

Ruby 単体テストにはさまざまなコマンド ライン オプションがあります。-W はそれらに属さず、純粋な Ruby のコマンド ライン オプションです。前述ruby --helpのように、ruby-W[level]コマンド ライン オプションは Ruby の警告レベルを設定します。0 = 無音、1 = 中、2 = 詳細 (デフォルト)。ruby -W0警告レベルを無音に設定します。

$ ruby --help
  [...]
  -w              turn warnings on for your script
  -W[level]       set warning level; 0=silence, 1=medium, 2=verbose (default)

-W フラグは、Ruby の「冗長」モードも有効にします。Mislav はverbose modeについて適切な説明をしています。Ruby コード内から、冗長性を設定し、$VERBOSE グローバル変数の値でテストできます。この変数には、nil ("0")、false ("1")、および true ("2") の 3 つの状態があります。したがって、設定することで Test::Unit テストの警告を抑制することができます

$VERBOSE = nil 

あなたのtest_helper.rb。RSpecs テストを実行する場合、同様に ruby​​ の警告を抑制することができます。

于 2012-07-09T08:38:50.317 に答える