Je veux pouvoir exécuter les tests d'un seul fichier de spécifications - pour le fichier que je modifie, par exemple. rake spec
exécute toutes les spécifications. Mon projet n'est pas un projet Rails, donc rake spec:doc
ça ne marche pas.
Je ne sais pas si cela est important, mais voici ma structure de répertoires.
./Rakefile ./lib ./lib/cushion.rb ./lib/cushion ./lib/cushion/doc.rb ./lib/cushion/db.rb ./spec ./spec/spec.opts ./spec/spec_helper.rb ./spec/db_spec.rb
L'invocation brute:
Maintenant, découvrez comment intégrer cela dans votre éditeur.
la source
Cette question est ancienne, mais elle apparaît en haut de Google lors de la recherche de la façon d'exécuter un seul test. Je ne sais pas si c'est un ajout récent, mais pour exécuter un seul test à partir d'une spécification, vous pouvez faire ce qui suit:
où -numéro de ligne- est un numéro de ligne qui contient une partie de votre test. Par exemple, si vous aviez une spécification comme:
Disons qu'il est enregistré dans spec / models / foo_spec.rb. Ensuite, vous exécuteriez:
et il exécuterait juste cette spécification. En fait, ce nombre pourrait être compris entre 2 et 5.
J'espère que cela t'aides!
la source
require
est vos autres fichiers de spécifications?rspec spec/models/foo_spec.rb:2:12:49
Vous pouvez également utiliser le texte réel du cas de test * e * xample avec
-e
!Donc pour:
vous pouvez utiliser
pas besoin de râteau ici.
la source
de l'aide (spec -h):
Exemple: spec spec / runner_spec.rb -l 162
la source
:
selon la documentation et une réponse populaire.Si vous avez installé rspec en tant que plugin plutôt qu'en tant que gemme, alors vous n'aurez pas l'
spec
exécutable.Quoi qu'il en soit, il vous suffit d'exécuter le fichier à l'aide de ruby. Le code rspec est suffisamment intelligent pour exécuter les tests pour vous.
par exemple:
la source
http://github.com/grosser/single_test vous permet de faire des trucs comme ..
la source
Ruby 1.9.2 et Rails 3 ont un moyen simple d'exécuter un fichier spec:
Explication:
ruby
la commande a tendance à être plus rapide que larake
commande-I spec
signifie "inclure le répertoire 'spec' lors de la recherche de fichiers"spec/models/user_spec.rb
est le fichier que nous voulons exécuter.la source
Pour exécuter tous vos fichiers rspec:
rspec
note: vous devez être à la racine de votre projet
Pour exécuter un fichier rspec:
rspec 'path_to/spec.rb'
remarque: remplacez 'path_to / spec.rb' par votre chemin. Les guillemets sont facultatifs.
Pour exécuter un test rspec à partir d'un fichier:
rspec 'path_to/spec.rb:7'
note:: 7 est le numéro de ligne où le test commence
la source
J'avais du mal à faire fonctionner ces exemples, peut-être parce que le message est ancien et que les commandes ont changé?
Après quelques fouilles, j'ai trouvé que cela fonctionne:
spécification rspec / models / user_spec.rb
Cela ne fonctionnera que le fichier unique et fournit une sortie utile dans le terminal.
la source
specky.vim
la source
Alternativement, jetez un œil à l'autotest.
L'exécution de l'autotest dans une fenêtre de commande signifie que le fichier de spécifications sera exécuté chaque fois que vous l'enregistrerez. En outre, il sera exécuté chaque fois que le fichier que vous spécifiez est exécuté.
Par exemple, si vous avez un fichier de spécifications de modèle appelé person_spec.rb et un fichier de modèle qu'il spécifie appelé person.rb, chaque fois que vous enregistrez l'un de ces fichiers à partir de votre éditeur, le fichier de spécifications sera exécuté.
la source
Bien que de nombreuses bonnes réponses aient été écrites à cette question, aucune d'entre elles n'utilise l' approche Rspec
tags
.J'utilise des balises pour exécuter une ou plusieurs spécifications dans différents fichiers - uniquement celles liées à ma tâche de développement actuelle.
Par exemple, j'ajoute la balise "dev" avec la valeur "current":
alors je cours
Différentes balises / valeurs peuvent être définies dans des spécifications ou des groupes individuels.
la source
Disons que vous exécutez un test pour créer des tâches. Vous pouvez toujours exécuter ce code de tâche spécifique en utilisant le fichier crete_spec.rb comme ci-dessous.
Si vous souhaitez exécuter toutes les spécifications en un seul court métrage.
Si vous souhaitez exécuter toutes les spécifications dans un utilisateur de contrôleur spécifique, cela.
J'espère que cela vous donnera plus de compréhension!
la source