Comment faire pour exécuter tous les tests avec minitest?
J'ai téléchargé le code source d'un projet, a trouvé un bug, et il fixe.
Maintenant, j'ai envie de faire des tests pour savoir si j'ai rien cassé.
Les Tests sont en minitest DSL.
Comment puis-je exécuter toutes à la fois?
J'ai cherché applicable râteau des tâches, etc, mais je n'ai pas trouvé.
- Avez-vous exécutez les tests individuels? Si oui, comment?
Vous devez vous connecter pour publier un commentaire.
Voici un lien vers Râteau::TestTask.
Il y a un exemple dans la page pour obtenir vous avez commencé.
Je vais poster un autre que j'utilise en ce moment pour un joyau:
Comme vous pouvez le voir, je suppose que mes fichiers sont tous dans
/lib
et que mes specs sont en/spec
et sont nomméswhatever_spec.rb
Espère que cela aide.
rake test
de serrures réponse est mieux, mais je voulais aussi préciser que vous pouvez également exécuter minitest directement à partir de la commande comme avec le rubis de commande. Pour exécuter les tests dans la spec/calculator_spec.rb de l'exécution du fichier:
N'oubliez pas d'inclure le code suivant dans la calculator_spec.rb fichier:
Pour exécuter tous les tests dans la spec/répertoire, utilisez la commande suivante (voir ce post pour plus de détails D'expansion ne fonctionne pas avec Minitest - un Seul fichier est exécuté)
C'est ce que
Râteau::TestTask
n'sous le capot, plus ou moins:Remarque:
lib
&test/test*.rb
(ci-dessus) sont les valeurs par défaut, maistest
&test/*_test.rb
, respectivement, sont les plus typiques.Source: rake/testtask.rb à c34d9e0 la ligne 169
Si vous utilisez JRuby et veulent éviter de payer le coût de démarrage deux fois (une fois pour le Râteau et alors une fois pour le sous-processus qui Râteau commence), il suffit d'utiliser cette commande.
./test/*_test.rb
fonctionne, mais pastest/*_test.rb
. Vous pouvez également utiliserruby -I lib -e 'ARGV.each { |f| load f }' test/*_test.rb
qui semble fonctionner avec les deux./test/*_test.rb
ettest/*_test.rb
Ici est toute ma
rakefile
, que j'ai mis dans mon répertoire:D'exécuter tous mes fichiers de test à la fois, je viens de type
rake
. Ça y est!Assurez-vous d'avoir
require 'minitest/autorun'
en haut de chacun de vos Minitest fichiers. Dir.glob certainement NE fonctionne pas avec le Minitest.Pour obtenir à peu, de couleur Minitest de sortie, avec les noms de tous mes méthodes de test, j'ai le fichier
minitest_helper.rb
dans mon dossier /test. (Installer la gem minitest-reporters):J'ai juste eu à
require_relative './minitest_helper'
en haut de chacun de mes fichiers de test.$LOAD_PATH
.Cela peut aussi être fait par l'intermédiaire d'un Makefile.
de course
make
va exécuter toutes vos tests.Une autre façon de faire cela en utilisant seulement les Rubis de la bibliothèque standard est avec
Dir.glob
. À partir de l'intérieur d'un fichier ruby, cela devrait ressembler à ceci:Ou à partir de la ligne de commande, vous pouvez utiliser cette commande:
Dir.glob('**/*Test.rb')
effectue une recherche récursive dans le répertoire courant de n'importe quel fichier qui correspond à*Test.rb
, nous avons simplement prendre tous ces fichiers etrequire
ourequire_relative
eux. À partir de la ligne de commande,require_relative
échoue, nous utilisons donc desrequire
mais d'abord ajouter le répertoire courant de la$LOAD_PATH
par-I .
$ rake test
couru hors de la de les rails 5.0 boîte.Je réalise que c'est une très vieille question, mais
rake test
fonctionne pour moi dans les Rails 4.2, y compris les fichiers en cours de test/essai/intégration/, test/unit/, etc.Si vous n'avez pas de rake, essayez ceci:
http://blog.gingergriffis.com/post/85871430778/ruby-how-to-run-all-tests-in-a-directory
rake
.