195 votes

Est-il possible d'exécuter un seul test dans MiniTest?

Je peux exécuter tous les tests dans un seul fichier avec rake test TEST=path/to/file.rb . Toutefois, si je ne souhaite exécuter qu'un seul test dans ce fichier, comment procéderais-je?

Je recherche des fonctionnalités similaires à rspec path/to/file.rb -l 25

232voto

user1404037 Points 236

La commande devrait être:

 % rake test TEST=test/test_foobar.rb TESTOPTS="--name=test_foobar1 -v"
 

162voto

Andrew Grimm Points 22996
As-tu essayé ?

59voto

randomor Points 1009

Aucune gemme requise: ruby -Itest test/lib/test.rb --name /some_test/

Source: http://blog.arvidandersson.se/2012/03/28/minimalicous-testing-in-ruby-1-9

51voto

fguillen Points 11849

C'est l'une des choses qui me dérangent sur l' string name definition dans les tests.

Lorsque vous aurez:

def test_my_test
end

vous savez toujours comment votre test est appelé de cette façon vous pouvez l'exécuter comme ceci:

ruby my_test -n test_my_test

Mais quand vous avez quelque chose comme:

it "my test" do
end

vous n'êtes jamais sûr de savoir comment ce test est vraiment nommé en interne de sorte que vous ne pouvez pas utiliser l' -n option vient directement.

Pour savoir comment ce test est nommé en interne, vous n'avez qu'une option: exécution de l'ensemble du dossier pour essayer de comprendre en regardant dans les logs.

Ma solution de contournement est (temporairement) ajouter quelque chose pour le nom de test très unique comme:

it "my test xxx" do
end

et puis utiliser la RegEx version de l'option '-n' paramètre comme:

ruby my_test.rb -n /xxx/

46voto

Elliot Winkler Points 1141

Je recherche des fonctionnalités similaires à rspec path / to / file.rb -l 25

Ouaip! Utilisez le joyau "m" de Nick Quaranto . Avec cela, vous pouvez dire:

 m spec/my_spec.rb:25
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X