76 votes

comment faire tous les tests avec minitest?

J'ai téléchargé la source de certains projets. Trouvé un bug. Fixe le.

Maintenant, je veux faire des tests pour savoir si je n'ai rien cassé.

Les tests sont en minitest DSL.

Comment puis-je les exécuter tous à la fois?

Recherché pour une tâche de râteau, etc. Je ne l'ai pas trouvée.

97voto

locks Points 755

voici un lien vers Rake :: TestTask .

Il y a un exemple dans la page pour vous aider à démarrer.
J'en posterai un autre que j'utilise actuellement pour un petit bijou:

 require 'rake/testtask'

Rake::TestTask.new do |t|
  t.pattern = "spec/*_spec.rb"
end
 

Comme vous pouvez le constater, je suppose que mes fichiers se trouvent tous dans '/ lib' et que mes spécifications sont dans '/ spec' et qu'elles s'appellent any_spec.rb.

J'espère que ça aide.

30voto

Powers Points 1742

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:

$ ruby spec/calculator_spec.rb 

N'oubliez pas d'inclure le code suivant dans la calculator_spec.rb fichier:

require 'minitest/spec'
require 'minitest/autorun'

Pour exécuter tous les tests dans la spec/ répertoire, utilisez la commande suivante (voir ce post pour plus de détails Expansion ne fonctionne pas avec Minitest - un Seul fichier est exécuté)

$ for file in spec/*.rb; do ruby $file; done 

20voto

Theo Points 60103

Voici ce que Rake's TestTask fait plus ou moins sous le capot:

 ruby -e 'ARGV.each { |path| require path }' test/test_*.rb
 

Si vous utilisez JRuby et que vous souhaitez éviter de payer deux fois le coût de démarrage (une fois pour Rake, puis pour le sous-processus démarré par Rake), utilisez simplement cette commande.

16voto

Raymond Gan Points 159

Voici toute ma rakefile, que j'ai mis dans mon répertoire:

task :default => :test
task :test do
  Dir.glob('./test/*_test.rb').each { |file| require file}
end

Pour exécuter tous mes fichiers de test à la fois, je viens de type rake. Ça y est!

Assurez-vous que 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):

require 'minitest/reporters'
Minitest::Reporters.use!(Minitest::Reporters::SpecReporter.new)
require 'minitest/autorun'

J'ai juste eu à require_relative './minitest_helper' en haut de chacun de mes fichiers de test.

7voto

dkinzer Points 6339

Cela peut aussi être fait via un Makefile.

 default:
  echo "Dir.glob('./test/*_test.rb').each { |file| require file}" | ruby
 

exécuter make exécutera tous vos tests.

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