2014-07-15 54 views
1

是否有可能讓RubyMine忽略spec_helper.rb過濾器? 我通常在我的spec_helper文件中添加config.filter_run_excluding :js => true,這樣在運行rspec時,默認排除所有js測試(因爲js測試通常很慢)。如何覆蓋RubyMine中的RSpec的filter_run_excluding?

但是,當我在RubyMine中編輯文件時,我希望能夠運行該單一測試,並讓RubyMine忽略config.filter_run_excluding :js => true

我解決它現在是註釋掉線在spec_helper.rb,然後運行在RubyMine的單一測試,但它會很高興得到默認情況下的RubyMine該行爲的方式..

版本

  • 的RubyMine 6.3.3
  • rspec的護欄(2.14.1)
  • 導軌4.0.4

我知道我也可以刪除spec_helper中的排除過濾器,並停止使用RSpec來運行所有測試,並使用rspec -tag ~js,但我真的很想重寫RubyMine中的spec_helper過濾器,而不是在終端中。

回答

2

最簡單的方法可能是使用環境變量。

環繞在spec_helper該配置符合可變

unless ENV['INCLUDE_JS'] 
    config.filter_run_excluding :js => true 
end 

的環境進行檢查,並添加INCLUDE_JS=1到要不排除使用Javascript功能的RSpec的運行/調試配置。如果要爲所有運行/調試配置執行此操作,請將該環境變量添加到RSpec默認值,並在創建時將其傳播到新配置。

+0

非常感謝您的回答。但我非常想僅在RubyMine中添加配置,而不是在spec_helper文件中添加配置。在RubyMine中,rspec的Defaults中有一個[Runner選項](http://www.jetbrains.com/ruby/webhelp/run-debug-configuration-rspec.html)選擇,我想我可以在那裏添加標籤: - - 標籤js,但它不起作用。 – Hilde

+0

我認爲RubyMine存在一個錯誤:http://youtrack.jetbrains.com/issue/RUBY-15547我認爲這是一個非問題的問題,因爲我不認爲有辦法做你想做的事情使用RSpec選項(這就是我給出答案的原因):在命令行中,'--tag js'覆蓋'filter_run_excluding',但只運行標記爲'js'的示例;我嘗試了'--tag js --tag〜js',但它的行爲就像'--tag〜js'。至少您只需將環境變量check添加到spec_helper.rb一次,或者爲每個使用'filter_run_excluding'的標記添加一次。 –

+0

好的。那麼我猜環境變量是最好的解決方案。非常感謝您的回答和評論。 – Hilde