--Je souhaite exécuter automatiquement des tests et des analyses statiques
--Rspec (automatisation des tests) --Brakeman (contrôle de sécurité) --Rubocop (analyse de code Ruby) --RailsBestPractices (analyse de code Rails)
J'écrirai en supposant que vous avez déjà installé et que vous êtes prêt à taper des commandes manuellement. Si vous disposez d'un outil que vous n'utilisez pas, ignorez les paramètres de cette partie.
Gemfile
group :development do
gem 'overcommit'
$ bundle install
$ overcommit --install #Générer le fichier de configuration
.overcommit.yml
#Désactiver les vérifications inutiles
CommitMsg:
ALL:
enabled: false
PreCommit:
AuthorEmail:
enabled: false
AuthorName:
enabled: false
BrokenSymlinks:
enabled: false
CaseConflicts:
enabled: false
MergeConflicts:
enabled: false
#Paramètres de vérification requis
RuboCop:
enabled: true
RailsBestPractices:
enabled: true
PrePush:
Brakeman:
enabled: true
RSpec:
enabled: true
$ overcommit --sign #Refléter le changement de réglage
Paramètres par défaut est appliqué à l'exception des éléments explicitement définis dans le fichier de paramètres.
Voici un exemple de la méthode de vérification des opérations.
Rubocop
Incorporez Time.now
dans un contrôleur approprié et confirmez qu'il ne peut pas être validé
RailsBestPractices
Définissez default_scope order (created_at :: desc)
sur un modèle approprié et confirmez que vous ne pouvez pas valider
Brakeman
Définissez `http_basic_authenticate_with nom: 'ID', mot de passe: 'mot de passe' sur le contrôleur approprié et confirmez que Push n'est pas possible.
RSpec
Écrivez un test qui ne passe pas et assurez-vous que vous ne pouvez pas pousser
Lorsque j'ai exécuté RSpec manuellement, il a réussi, mais je n'ai pas pu passer la vérification pré-push et le message suivant a été affiché.
NameError:
uninitialized constant Capybara::DSL
Lorsque vous appuyez manuellement, bin / rspec
est exécuté, mais lors du pré-push, bundle exec rspec
est exécuté, donc le comportement semble être légèrement différent. Résolu en ajoutant ce qui suit à spec_helper.rb
.
spec/spec_helper.rb
RSpec.configure do |config|
#Ajout des 3 lignes suivantes
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../config/environment', __dir__)
require 'rspec/rails'
Recommended Posts