2010-08-05 6 views
2

L'histoire habituelle des sanglots: mes tests se déroulent lentement.Comment puis-je profiler ma suite de tests Ruby dans son ensemble?

Ma première pensée était de profil l'ensemble de la suite de test pour rechercher des victoires évidentes (stubbing sur l'accès au réseau ou caches), donc j'ajouté une tâche-prof ruby:

RubyProf::ProfileTask.new(:units) do |t| 
    t.test_files = FileList[RAILS_ROOT + '/test/unit/**/*_test.rb'] 
    t.output_dir = Dir.tmpdir 
    t.printer = :graph 
    t.min_percent = 1 
end 

Malheureusement, les profils de chaque test individuellement. Existe-t-il un moyen d'obtenir un agrégat sur toutes ces classes de test?

+1

Avez-vous essayé d'exécuter 'ruby-prof test_suite_name.rb' sans ajouter de code spécifique ruby-prof à vos tests? –

+0

En fait, je n'avais pas envisagé de faire une vraie suite de tests. Cela pourrait fonctionner! –

+0

Dans mon projet Plain Old Ruby Object, créer une suite de tests est facile. Juste un fichier 'require' tous les autres fichiers (ou fichiers qui requièrent d'autres fichiers). Cependant, je ne sais pas si cela fonctionnera bien avec la magie de Rails. –

Répondre

2

Vous pouvez exécuter ruby-prof test_suite_name.rb. Vous n'avez même pas besoin d'ajouter du code spécifique ruby-prof à vos tests.

1

Il existe plans pour ajouter l'analyse comparative à minitest.