Pour des raisons inexplicables, RubyMine sauvegarde automatiquement à chaque changement que vous faites et donc à chaque touche sera le déclencheur de la Garde à l'exécution de vos tests! Et le plus ridicule, c'est que il n'y a apparemment aucun moyen de désactiver cette sauvegarde automatique "fonctionnalité". Je me demandais simplement, RubyMine semble être très populaire éditeur parmi les développeurs web et de la Garde semble être un outil indispensable utilisé pour automatiser les tests. Depuis la Garde est impossible de l'utiliser de manière raisonnable, avec RubyMine, comment des gens face à l'automatisation de leurs tests avec RubyMine?
Réponses
Trop de publicités?Im en utilisant RubyMine avec la Garde toute la journée, et en fait, certaines parties de Garde ont été développés dans RubyMine lui-même.
Vous pouvez configurer l'auto-safe comportement en allant à l' RubyMine > Preferences
dans le menu et entrez save
dans la zone de recherche, puis sélectionnez General
à partir de la liste.
La photo montre mes paramètres et ces fonctionne très bien. Vous pouvez également désactiver Save files on frame deactivation
, pour seulement enregistrer un fichier sur une sauvegarde manuelle.
Je préfère utiliser la Garde à partir de la borne, mais vous pouvez configurer RubyMine pour exécuter Garde directement par l'ajout d'une configuration d'essai en sélectionnant Run > Edit configurations
dans le menu:
Maintenant, vous pouvez ajouter une nouvelle configuration en cliquant sur le signe plus, en +
et sélectionnez IRB console
:
Maintenant, le nom de la configuration de l' Guard
, entrez le chemin d'accès à la Garde dans la CISR script et définir le projet de répertoire de travail. Vous pouvez entrer votre Garde-les arguments de la CISR arguments, comme les différents groupes de la Garde, etc.
J'ai trouvé mon chemin vers la Garde en ouvrant le terminal, modifié dans le projet de répertoire de travail et est entré which guard
, ce qui résulte en /Users/michi/.rvm/gems/ruby-1.9.3-p194/bin/guard
pour mon Ruby 1.9.3-p194 SDK géré par RVM.
Ensuite, vous devez vérifier la Exécutez le script dans le contexte de l'ensemble de l' Bundler
tab.
Maintenant, appuyez sur OK
et vous avez une nouvelle configuration d'exécution. Avant de commencer la Garde, vous devez configurer l'interacteur à simple par l'ajout d'
interactor :simple
pour votre Guardfile
. Maintenant, vous pouvez exécuter (ou même de débogage) Garde directement à l'intérieur de RubyMine:
Profitez-en!
Lorsque vous exécutez la garde avec RubyMine pour les tests, il est extrêmement utile pour configurer une base de données distincte de l'environnement pour la garde spec, sinon vous allez avoir d'étranges questions (l'un ou de l'autre se bloque ou se donne des résultats incohérents.
Nom de votre garde-spec de l'environnement "ci" et créer une nouvelle entrée dans la base de données.yml. J'utilise "ci" pour l'Automatisation Continue.
Ensuite, mettez ceci dans votre Guardfile. La clé, c'est
'RAILS_ENV' => 'ci'
Voici comment j'ai la mienne de l'installation:
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
Je puis exécutez
bundle exec guard -g spec
Aussi, je ne me dérange pas d'avoir RubyMine sauvegarder les fichiers automatiquement toutes les 60 secondes, même si ce coup d'envoi de la Garde, comme mon nouveau MBP Retina n'a pas sensiblement ralentir lors de l'exécution de la Garde.
BTW, Garde l'exécution des specs, c'est vraiment génial que vous trouverez à défaut de tests beaucoup plus rapide que d'essayer d'exécuter les tests vous-même dans RubyMine. I. e., le test est essentiellement fait au moment où mon doigt communiqués de cmd-s pour enregistrer.
Je l'exécuter à partir de la borne. Je n'ai pas essayé de courir avec RubyMine. Quelqu'un veut des commentaires sur les avantages de le faire? Je pense avoir le vidage de pile cliquable, ce serait bien.