12
votes

Statistiques de râteau et concombre

J'utilise du concombre avec RSPEC dans un projet Rails. Lorsque j'utilise la tâche "Statistiques Rake", je reçois ce qui suit:

+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers          |   948 |   761 |      21 |      87 |   4 |     6 |
| Helpers              |   212 |   175 |       0 |      24 |   0 |     5 |
| Models               |   912 |   741 |      28 |      72 |   2 |     8 |
| Libraries            |   305 |   211 |       1 |      25 |  25 |     6 |
| Model specs          |   978 |   797 |       0 |       1 |   0 |   795 |
| View specs           |   270 |   227 |       0 |       0 |   0 |     0 |
| Controller specs     |  1144 |   944 |       0 |       4 |   0 |   234 |
| Helper specs         |   154 |   116 |       0 |       0 |   0 |     0 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                |  4923 |  3972 |      50 |     213 |   4 |    16 |
+----------------------+-------+-------+---------+---------+-----+-------+
  Code LOC: 1888     Test LOC: 2084     Code to Test Ratio: 1:1.1


0 commentaires

5 Réponses :


11
votes

RSPEC crée un lib / tâches / rspec.rake fichier. Et redéfinit les répertoires des statistiques à l'intérieur de celui-ci.

à la ligne 108 de ce fichier, vous verrez: xxx

Vous devez juste ajouter votre répertoire de fonctionnalités de concombre là-bas. , juste avant la fin de la tâche. xxx


3 commentaires

Woh c'était rapide! Je vérifie ça.


Des conseils sur la façon de faire cela si vous n'utilisez pas RSPEC?


Pourriez-vous nous dire comment cela fonctionne avec le dernier gem RSPEC-2? Parce qu'il n'y a pas de tâche de râteau



0
votes
# here is my set up
    task :statsetup do
      require 'code_statistics'

      class CodeStatistics
        alias calculate_statistics_orig calculate_statistics

        def calculate_statistics
          @pairs.inject({}) do |stats, pair|
            if 3 == pair.size
              stats[pair.first] = calculate_directory_statistics(pair[1], pair[2]); stats
            else
              stats[pair.first] = calculate_directory_statistics(pair.last); stats
            end
          end
        end
      end
      # http://www.pervasivecode.com/blog/2007/06/28/hacking-rakestats-to-get-gross-loc/
      ::STATS_DIRECTORIES << ['Views', 'app/views', /\.(rhtml|erb|rb)$/]
      ::STATS_DIRECTORIES << ['Static CSS',  'public/stylesheets', /\.css$/]
      ::STATS_DIRECTORIES << ['App javascript',  'public/javascripts', /application.js$/]

      # RSpec default
      ::STATS_DIRECTORIES << %w( Model\ specs spec/models ) if File.exist?('spec/models')
      ::STATS_DIRECTORIES << %w( View\ specs spec/views ) if File.exist?('spec/views')
      ::STATS_DIRECTORIES << %w( Controller\ specs spec/controllers ) if File.exist?('spec/controllers')
      ::STATS_DIRECTORIES << %w( Helper\ specs spec/helpers ) if File.exist?('spec/helpers')
      ::STATS_DIRECTORIES << %w( Library\ specs spec/lib ) if File.exist?('spec/lib')
      ::STATS_DIRECTORIES << %w( Routing\ specs spec/routing ) if File.exist?('spec/routing')
      ::STATS_DIRECTORIES << %w( Integration\ specs spec/integration ) if File.exist?('spec/integration')
      ::CodeStatistics::TEST_TYPES << "Model specs" if File.exist?('spec/models')
      ::CodeStatistics::TEST_TYPES << "View specs" if File.exist?('spec/views')
      ::CodeStatistics::TEST_TYPES << "Controller specs" if File.exist?('spec/controllers')
      ::CodeStatistics::TEST_TYPES << "Helper specs" if File.exist?('spec/helpers')
      ::CodeStatistics::TEST_TYPES << "Library specs" if File.exist?('spec/lib')
      ::CodeStatistics::TEST_TYPES << "Routing specs" if File.exist?('spec/routing')
      ::CodeStatistics::TEST_TYPES << "Integration specs" if File.exist?('spec/integration')

      # Cuke
      ::STATS_DIRECTORIES << %w( Cucumber\ features features ) if File.exist?('features')
      ::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?('features')

    end

0 commentaires

2
votes

Pourquoi le singe patch le gemme comme ça? Vous devrez ajouter votre solution à chaque fois que vous mettez à jour RSPEC-Rails. Il suffit d'étendre la tâche localement avec quelque chose comme ceci: XXX

et FYI LichTamberg et Damien Mathieu Cela fonctionne simplement bien avec RSPEC 2. Cependant, ces rails spécifiques des tâches de râteau sont OFC ne faisant pas partie du gemme RSPEC , mais une partie de la gemme RSPEC-rails.

ps Tout cela a été testé avec Ruby 1.9.2P180 (2011-02-18 Révision 30909) [I686-Linux], Rails 3.0.8, RSPEC 2.6.0 et RSPEC-Rails 2.6.1 et pourraient ne pas fonctionner ou ne pas travailler plus anciennes de eux.


0 commentaires

1
votes

Voici une version qui fonctionne avec Turnip et RSPEC 2

https://gist.github.com/2360892


0 commentaires

0
votes

Bien que ce soit une question extrêmement ancienne, il est toujours en premier lieu lorsque Googling "Rails Rake Statist Cumumber" et les réponses sont trompeuses ou obsolètes.

Pour les futurs Googlers, tout ce que vous avez à faire est de gérer < Pré> xxx

Ceci créera les fichiers nécessaires, et spécifiquement le fichier lib / tâches / cocumber.rake , qui ajoute des "fonctionnalités de concombre" aux statistiques rake < / code> sortie.


0 commentaires