0

私はそれを一日中動作させようとして自動テストをいじっていました..しかし、いくつかの問題があります...

私はhttps://github.com/rspec/rspec/wiki/autotestをフォローしてきました。

  • ルビー 1.9.3-p194
  • rspec 2.10.0
  • ZenTest 4.8.1

.rspec ファイルも作成しました。

したがって、この設定で autotest を実行すると、うまくいきます。テストが実行され、成功しました。false.sho == true などの失敗をテストに貼り付けると、テストはループを開始し、何度も繰り返します。

何が起こるかというと、それは統合テストであり、私は sqlite db に書き込んでいます。実行するfind . -mmin -1と、db フォルダーが変更されていることがわかります。これが問題であると考えました。

そこで、.autotest を編集して以下を追加します。

Autotest.add_hook :initialize do |autotest|
  %w{db}.each { |exception| autotest.add_exception(exception) }
  false
end

しかし、自動テストを実行すると、次のように表示されます。

loading autotest/rspec2

それだけです。もう何もしません。以前の出力は次のとおりでした。

loading autotest/rspec2

/home/me/.rbenv/versions/1.9.3-p194/bin/ruby -rrubygems -S '/home/me/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rspec-core-2.10.1/exe/rspec' ``--tty '/home/me/Workspace/myproject/spec/integration/db/lead_spec.rb'

そして、テストを実行して結果を表示します...

何が起こっているのか知っている人はいますか?とてももどかしいし、行き詰まりを感じている…。

ご協力いただきありがとうございます!

4

1 に答える 1

0

自動テストは、定義された例外がファイル名の一部と一致するかどうかをチェックします。あなたの仕様はdbそのパスにあるため、自動テストでは無視されます。

dbフォルダーを無視する場合は、次の手順を実行します。

Autotest.add_hook :initialize do |a|
  a.add_exception %r{^\./db}
end
于 2012-09-04T10:06:51.770 に答える