私は、RSpec 3.4.4のテストを包み込み、10秒後にタイムアウトするスクリプトを持っています。 ~/lib/spec_helper.rb
- -グローバルRSpecメタデータはどのように設定できますか?
TIMEOUT = 10
RSpec.configure do | config |
config.around do |example|
timeout = Float(example.metadata[:timeout]) rescue TIMEOUT
begin
Timeout.timeout(timeout) { example.run }
rescue Timeout::Error
skip "Timed out after #{timeout} seconds"
end
end
end
このスクリプトは、中央の場所にあり、私のリポジトリにspec_helper
sだけrequire
dとします。
私は全く(例えば)そのスペックタイムアウトのすべて 2秒後、または(別の例)を持つように、リポジトリ全体レベルでexample.metadata[:timeout]
を設定できるようにしたいと思います。
私は、.rspec
のオプションとして設定しようとしました。それは理想的な解決策ですが、そのようなカスタムオプションは認識されません。私は、コマンドラインがまったく同じことをすると期待します。
テストスイート内のすべてのサンプルに対してメタデータを設定する方法はありますか?
でそれを確認してください実際には、[元々]書き込んだように、タイムアウトをゼロに設定すると、サンプルがまったく実行されなくなります。幸いにも、 'Timeout.timeout(0){...}'はタイムアウトしないので、 'unless'節を削除するだけです。 – PJSCopeland
ああ、私は実際にそれについては確かではなかった...私は答えを変更するだろう – David