Techioz Blog

VSCode Ruby RuboCop フォーマッタは焦点を絞った仕様を削除します ->

概要

私は、これがマージされるまで、保存時にコードを自動フォーマットしていた VSCode で https://github.com/rubyide/vscode-ruby を喜んで使用していました https://github.com/rubocop-hq/rubocop- rspec/pull/1109 (これ自体は素晴らしいことです)。

焦点を当てたスペックを含む Rspec ファイルを保存すると、そのスペックが削除されるようになりました。例えば

「何か」を保存すると、それが「何か」に更新されます。 (無効になっている仕様 xit は削除されません)

vscode-ruby 構成:

    "ruby.intellisense": "rubyLocate",
    "ruby.useLanguageServer": true,
    "ruby.codeCompletion": "rcodetools",
    "ruby.format": "rubocop", // this line causes the formatter to kick in
    "ruby.lint": {
        "rubocop": true
    },

解決策

Ruby-lsp 拡張機能を使用して、VS Code に保存するときにほとんどの自動修正可能な違反を修正しつつ、集中的なテストを引き続き機能させるには、継続的インテグレーション環境の次に追加の安全性を利用することができます。

.rubocop.yml でcopを無効にします。

RSpec/Focus:
  Enabled: false

そして、rails_helper.rb のフォーカス設定を次のように変更します。

if ENV["CI"]
  config.before(:example, :focus) { |example| raise "Focused spec found at #{example.location}" }
else
  config.filter_run_when_matching :focus
end

私は Stephanie Viccari のブログ投稿を通じてこれを知りました。