RubyMineはあなたが行ったすべての変更を自動保存しますので、キーストロークが発生するたびにGuardがテストを実行します!そして、最もばかげたことは、明らかに、この自動保存機能を無効にする方法がないということです。私はRubyMineがRails開発者の間で非常に人気のあるエディターであるように思え、Guardはテストを自動化するために不可欠なツールであるようだ。 GuardはRubyMineで合理的に使用することは不可能であるため、RubyMineでのテストの自動化にはどのように対処していますか?RubyMineでGuardを使用することはできませんか?
答えて
私はRubyMine with하루中を使用しています。実際、Guardの一部はRubyMine自体で開発されています。
メニューのRubyMine > Preferences
に移動し、検索ボックスにsync
と入力し、リストからSystem Settings
を選択して、自動安全動作を設定できます。
絵は私の設定し、これらの作品は罰金を示しています。 Save files on frame deactivation
を無効にして、手動保存でファイルを保存することもできます。
私は端末からガードを使用することを好むが、あなたはメニューからRun > Edit configurations
を選択することにより、実行構成を追加することにより、直接ガードを実行するためにルビーマインを設定することができます。
今、あなたはをクリックして、新しい設定を追加することができますプラス記号+
とIRB console
を選択:
今IRBスクリプトとセットに守るためにパスを入力し、コンフィギュレーションGuard
に名前を付けますプロジェクトの作業ディレクトリ。あなたは
は、私は、ターミナルを開いて守るために自分の道を見つけ、プロジェクトの作業ディレクトリに変更し、which guard
を入力し、その
など
/Users/michi/.rvm/gems/ruby-1.9.3-p194/bin/guard
です。
次に、を確認する必要があります。タブのバンドルのコンテキストでスクリプトを実行します。
今OK
を押すと、あなたはブランドの新しい実行構成を持っています。ガードを開始する前に、あなたはあなたのGuardfile
に
interactor :simple
を追加することで、単純なにインタラクタを設定する必要があります。今、あなたはガード直接ルビーマイン内(あるいはデバッグ)を実行することができます
お楽しみください!
それとも、次のコードで、プロジェクトのルートにrun_guard.rbファイルを追加することができます
exec 'guard'
気をつけろ!RubymineはPATHに問題があります。たとえば、/ usr/local/binはフィルタリングされます...
RubyMineでテストを実行すると、ガード仕様用に別のデータベース環境を設定すると非常に便利です。そうしないと奇妙な問題が発生します一つのプロセスまたは他のフリーズや一貫性のない結果が得られます。
名前あなたのガード仕様環境「CI」とdatabase.ymlの中に追加のエントリを作成します。私は、継続的な自動化のための「CI」を使用。
その後でこれを置きますあなたのGuardfile。重要なのは、
'RAILS_ENV' => 'ci'
です。私はその後、私もそれは私の新しいとして、ガードをキックオフしてもルビーマインは60秒ごとに自動的にファイルを保存した気にしない
bundle exec guard -g spec
を実行
group :spec do
guard :spork, :rspec_port => 1234, :cucumber_env => { 'RAILS_ENV' => 'ci' }, :rspec_env => { 'RAILS_ENV' => 'ci' } do
watch('config/application.rb')
watch('config/environment.rb')
watch(%r{^config/environments/.+.rb$})
watch(%r{^config/initializers/.+.rb$})
watch('spec/spec_helper.rb')
watch(%r{app/models/.+\.rb})
watch(%r{app/views/.+\.haml})
watch('Gemfile')
watch('Gemfile.lock')
watch('test/test_helper.rb')
end
# environment is 'ci'
guard :rspec, :cli => '--drb --drb-port 1234', :version => 2, :all_after_pass => false, :notification => true, :environment => 'ci' do
watch(%r{^spec/.+_spec.rb$})
watch(%r{^lib/(.+).rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
watch('spec/spec_helper.rb') { "spec" }
# Rails example
watch(%r{^spec/.+_spec.rb$})
watch(%r{^app/(.+).rb$}) { |m| "spec/#{m[1]}_spec.rb" }
watch(%r{^lib/(.+).rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
watch(%r{^app/controllers/(.+)_(controller).rb$}) do |m|
["spec/routing/#{m[1]}_routing_spec.rb",
"spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb",
"spec/acceptance/#{m[1]}_spec.rb",
"spec/requests/#{m[1]}_spec.rb"]
end
watch(%r{^spec/support/(.+).rb$}) { "spec" }
watch('config/routes.rb') { "spec/routing" }
watch('app/controllers/application_controller.rb') { "spec/controllers" }
# Capybara request specs
watch(%r{^app/views/(.+)/.*.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
end
end
:
は、ここで私は私のものに設定している方法ですMBP Retinaは、Guardの実行中に著しく減速しません。
私がRubyMineでテストを自分で実行しようとするよりもはるかに速く失敗したテストを見つけるので、Guardの実行中のスペックは本当に素晴らしいです。つまり、テストは基本的に私の指がcmd-sから解放して保存するまでに完了しています。
私はこれを端末から実行します。私はRubyMineで動こうとしなかった。誰でもそのことの利点についてコメントしたいと思いますか?私はクリックダンプをクリックするといいと思う。
私は 'locate \ */bin/guard'を使用するのが好きです。なぜなら、バイナリガードファイルのすべてのインストールをシステムに表示する簡単な方法だからです。 –
なぜか分かりませんが、これはI/Oと私のためにsqliteロック例外。 –
これは本当に不満足な問題です。RubyMineをガードマンやグラント、他のタスクランナーと一緒に使用することは非常に難しくなります。
私は狂気の回避策のビットを作成し、それは私のために十分に働いています:
- ファイルの修正タイムスタンプを更新由緒あるUnixの「タッチ」コマンドを実行するために外部ツールを追加し、ファイルシステム・イベントを生成します。これは次のようになります。
- 外部ツールにキーボードショートカットを割り当てます。
- キーボードショートカットを[ドキュメントの保存]コマンドに割り当てます。
- ドキュメントを保存し、「タッチ」外部ツールを実行するマクロを記録します。ドキュメントの保存はアプリケーションのメニューに表示されないので、割り当てたキーボードショートカットを使用する必要があります。
- 新しいマクロのキーボードショートカットとしてCmd-Sを割り当てます。 http://youtrack.jetbrains.com/issue/RUBY-9903:これについて
私の完全なブログの記事は、このために開いて問題がありhttp://singlebrook.com/blog/saving-files-in-rubymine
- 1. Ruby 1.9.3を使用してRubyMine 4.5でデバッグできません
- 2. RubyMineエラー:gem 'rails'を実行できません。 「レール」を見つけることができません
- 3. リストを使用することはできますがIListを使用することはできません。
- 4. スウィフトでフロントカメラを使用することはできません
- 5. Image.fromarrayをarray.arrayで使用することはできません
- 6. コードペンでjQueryを使用することはできません
- 7. Androidでフォントを使用することはできません
- 8. AVCaptureDeviceをフラッシュで使用することはできません
- 9. macbookでpipを使用することはできません
- 10. Linqで.Unionを使用することはできません
- 11. ウェブストームでletを使用することはできません
- 12. Pythonで\ uを使用することはできません
- 13. Rubymineで端末/コマンドプロンプトを実行することはできますか?
- 14. JavaEdit.Object.setText(qtp vbs)を使用することはできません
- 15. オブジェクトにPriorityQueueを使用することはできません。
- 16. POSTメソッドを使用することはできませんエラー
- 17. アセットパイプラインを使用することはできません
- 18. ocsigenserver:ポート80を使用することはできません
- 19. JUnitCoreを使用することはできません
- 20. 私はスタティックライブラリを使用することができません
- 21. ジョイナ変換を使用することはできません
- 22. SQL ServerでROW_NUMBER()でエイリアスを使用することはできませんか?
- 23. R 3.4.2で `library(" ff ")`を使用することができませんを使用できません。
- 24. ユニットテストでmoqを使用することができません
- 25. didSelectRowAtをTableViewで使用することができません
- 26. nginxでhhvmを使用することができません
- 27. WPFでwinformsを使用することができません
- 28. RubyMine 4.0で外部の宝石をデバッグしたり検査したりすることはできません
- 29. @Transientアノテーションで@Valueアノテーションを使用することはできませんか?
- 30. 奇妙な、アンドロイドでFacebookを使用することはできませんか?
です。 – CrazyCoder
どのように "不可解"ですか? –
私は個人的にはオートセーブを全くしません。時には、特にvimのストロークでは、間違って別の文字に切り替える際に、現在のファイルのどこかに余分な文字を追加することがあります。通常、テストではこれをキャッチしますが、.jsファイルでは一度だけ追加されました。最後に「z」が追加されていました。 – Ted