Je peux exécuter tous les tests dans un seul fichier avec:
rake test TEST=path/to/test_file.rb
Cependant, si je veux exécuter un seul test dans ce fichier, comment le ferais-je?
Je recherche des fonctionnalités similaires à:
rspec path/to/test_file.rb -l 25
ruby
ruby-on-rails-3
minitest
Josiah Kiehl
la source
la source
rails test path/to/test_file.rb:25
voir @Derek_Hill ans - tiré de guides.rubyonrails.org/testing.html#the-rails-test-runnerRéponses:
Ouaip! Utilisez la gemme "m" de Nick Quaranto . Avec lui, vous pouvez dire:
la source
m
ne fonctionne actuellement pas ce Minitest 5.0 .La commande doit être:
la source
TESTOPTS=...
côté-v
?As-tu essayé:
la source
specify {}
? Ceux-ci apparaissent juste commetest_0001_anonymous
... et il pourrait y avoir plusieurstest_0001_anonymous
s si la même syntaxe est utilisée dans plusieurs blocs de description ... des suggestions pour exécuter des tests uniques dans ce type d'environnement?cannot load such file -- test_helper
.ruby -Itest path/to/tc_file.rb --name test_method_name
comme stackoverflow.com/a/15714985/327786bundle exec ruby -I lib path/to --name test_fit
Aucun bijou requis:
ruby -Itest test/lib/test.rb --name /some_test/
Source: http://blog.arvidandersson.se/2012/03/28/minimalicous-testing-in-ruby-1-9
la source
C'est l'une des choses qui me dérangent
string name definition
dans les tests.Lorsque vous avez:
vous savez toujours comment votre test est nommé afin que vous puissiez l'exécuter comme ceci:
Mais quand vous avez quelque chose comme:
vous n'êtes jamais sûr de la manière dont ce test est vraiment nommé en interne, vous ne pouvez donc pas utiliser l'
-n
option directement.Pour savoir comment ce test est nommé en interne, vous n'avez qu'une option: exécutez le fichier entier pour essayer de comprendre la recherche dans les journaux.
Ma solution de contournement est (temporairement) d'ajouter quelque chose au nom du test très unique comme:
puis utilisez la version RegEx du paramètre '-n' comme:
la source
__method__
dans le contexte de la méthode en cours d'exécution (votre test, dans ce cas). L'implémentation actuelle aboutit à quelque chose comme"does not break my stuff".gsub(" ", "_").prepend("test_")
. Ensuite, exécutez, par exempleruby -Itest test/integration/stuff_flow_test.rb --name test_does_not_break_my_stuff
,.Si vous utilisez MiniTest avec Rails 5+, la meilleure façon d'exécuter tous les tests dans un seul fichier est:
Et pour un seul test (par exemple en ligne 25):
Voir http://guides.rubyonrails.org/testing.html#the-rails-test-runner
la source
Vous pouvez l'utiliser pour exécuter un seul fichier:
J'ai aussi utilisé
pour un meilleur affichage.
la source
Il y a 2 façons de le faire:
Rake::TestTask
cible pour utiliser un autre chargeur de tests.Rake::TestTask
(à partir de rake 0.8.7) est théoriquement capable de passer des options supplémentaires àMiniTest::Unit
avec une"TESTOPTS=blah-blah"
option de ligne de commande, par exemple:En pratique, l'option
--name
(un filtre pour les noms de test) ne fonctionnera pas, en raison des internes de rake. Pour résoudre ce problème, vous devrez écrire un petit patch de singe dans votre Rakefile:Ce patch vous oblige à créer un fichier
test/my-minitest-loader.rb
:Pour imprimer toutes les options possibles pour Minitest, tapez
la source
rake
(0.9.2) et qu'aucun patch de singe n'est requis.TESTOPTS="--name test_foobar"
ne fonctionne pas, maisTESTOPTS="--name=test_foobar"
fonctionne.Vous pouvez passer
--name
pour exécuter un test par son nom ou un numéro dans son nom:par exemple:
Cet indicateur est documenté dans le fichier README de Minitest .
la source
Si vous utilisez Turn gem avec minitest, assurez-vous simplement d'utiliser l'
Turn.config.pattern
option car Turn Minitest runner ne respecte pas l'option --name dans les ARG.la source
name
option. Merci! Étant donné que Turn n'est plus maintenu, je prévois de migrer vers les minitest-reportersIl y a un petit bijou qui fait exactement cela:
minitest-line
.depuis https://github.com/judofyr/minitest-line#minitest-line
la source
j'utilise
ruby /path/to/test -n /distinguishable word/
Edit:
-n
est un raccourci pour--name
.distinguishable word
peut être n'importe quelle chaîne que vous mettez dans la description du test, j'utilise généralement un mot aléatoire dont je sais qu'il ne sera pas présent dans les descriptions d'autres tests.la source
-n
paramètre?--name
. Juste une chose de commodité. Particulièrement utile avec le / regex /, je mets généralement un mot aléatoire dans un nom de test (je sais qu'il ne sera pas présent dans les descriptions des autres tests).La suite fonctionnera
Cela peut fonctionner par
la source
rails test path/to/test_file.rb:25
le ferala source