2017-09-19 7 views
0

J'ai chargé un projet Ruby dans RubyMine, dont les fichiers de spécifications se trouvent dans un répertoire spec, comme d'habitude. Cliquez avec le bouton droit de la souris et sélectionnez "Exécuter" sur un fichier de spécifications unique pour l'exécuter correctement. Un clic droit et en sélectionnant 'exécuter tous' dans le répertoire specs provoque tous les tests échouent avec le message suivant:RubyMine IDE ne trouve pas les fichiers de spécifications dans le répertoire Spec

Échec de chargement:/Users/nathaniel/repo/close-web/spec/compositions/analyse/analysis_data_spec.rb: 1 Message d'exception: ne peut pas charger ce fichier - spec_helper

Dans la configuration de lancement, le 'dossier Tests' semble être correctement réglée:

/Users/nathaniel/repos/close-web/spec 

Et le travail direc tory ainsi:

/Users/nathaniel/repos/close-web 

Les arguments Ruby sont définis comme suit:

-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) -Itest 

(Il y a quelques indications sur le site Web de RubyMine que -Itest est nécessaire.) Sous l'onglet Bundler « Exécuter le script dans le contexte du bundle 'est également vérifié. Je ne sais pas de quoi d'autre RubyMine pourrait avoir besoin pour être capable de trouver et d'exécuter récursivement les tests. Les exécuter à partir de la ligne de commande fonctionne correctement:

~repos/closeweb $ bundle exec rspec spec 
... (all the tests running) 

Finished in 6 minutes 27 seconds (files took 13.39 seconds to load) 
1054 examples, 0 failures, 108 pending 

Quelle configuration est incorrecte ici que tous les tests ne seront pas exécutés?

+1

Étant donné que votre dossier est appelé 'spec', pas' test', je présume que vous besoin de '-Ispec', pas' -Itest'. –

+0

@TomLord C'était tout! Je vous remercie. Je n'avais pas réalisé que c'était la signification de ce drapeau. Si vous voulez mettre une réponse, je l'accepterai. –

Répondre

2

Étant donné que votre dossier est appelé spec, pas test, vous devez -Ispec, et non -Itest.

En d'autres termes, vos arguments de RubyMine devraient être:

-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) -Ispec 

De l'ruby man page:

-I directory Used to tell Ruby where to load the library scripts. 
       Directory path will be added to the load-path variable ($:)