RoR – Επιτάχυνση των tests

Όταν τρέχουμε τα tests μας, χρειάζονται κάποια δευτερόλεπτα ώστε αυτά να ξεκινήσουν να τρέχουν (τουλάχιστον αυτό συμβαίνει όταν χρησιμοποιούμε RSpec). Ο λόγος είναι ότι για να τρέξουν τα tests χρειάζεται να φορτωθεί στη μνήμη ολόκληρη η εφαρμογή μας.

Χρησιμοποιώντας το Spork

Ένας τρόπος να επιταχύνουμε αυτή τη διαδικασία είναι με τη χρήση του Spork. Για να χρησιμοποιήσουμε το Spork θα πρέπει να φορτώσουμε τα κατάλληλα gems στο gemfile μας.

group :development, :test do
  ...
  gem 'spork-rails'
end

Χρησιμοποιούμε το gem ‘spork-rails’ αντί του ‘spork’, γιατί ενώ το Spork υποστηρίζει διάφορα frameworks, η υποστήριξη για Rails αφαιρέθηκε.

Στη συνέχεια τρέχουμε:

bundle install
bundle exec spork --bootstrap

Πριν συνεχίσουμε θα πρέπει να φτιάξουμε τα configuration αρχεία. Για παράδειγμα, αν χρησιμοποιείτε RSpec ως test framework, στο αρχείο /spec/spec_helper.rb θα έχουν προστεθεί αυτόματα 2 block από το Spork. Θα πρέπει να μοιράσουμε τα προυπάρχοντα settings του αρχείου σε αυτά τα 2 blocks. Το πιο εύκολο είναι να τα βάλουμε μέσα στο block Spork.prefork.

Τέλος, για να ολοκληρώσουμε θα πρέπει να τρέξουμε την εντολή ‘spork’. Πριν την τρέξουμε όμως μπορούμε αν θέλουμε να χρονομετρήσουμε τα tests μας για να δούμε τη διαφορά. Για να χρονομετρήσουμε χρησιμοποιούμε την εντολή time, π.χ. ‘time bundle exec rspec’. Αφού ξεκινήσουμε το Spork, μπορούμε να ξανατρέξουμε τα tests και να δούμε πόσο πιο γρήγορα είναι.

Guard και Spork μαζί

Αν χρησιμοποιούμε το Guard για αυτοματοποίηση των tests, τότε για να συνεργαστούν Guard και Spork θα πρέπει να προσθέσουμε άλλο ένα gem.

gem 'guard-spork'

Στη συνέχεια τρέχουμε:

bundle install
bundle exec guard init spork

Αυτό θα προσθέσει κάποια πράγματα στο Guardfile, που αν θέλουμε μπορούμε να τροποποιήσουμε (π.χ. να βάλουμε να ξεκινάει το Spork αυτόματα όταν θα ξεκινάμε το Guard).

Έτσι, έχοντας Guard και Spork εγκατεστημένα μπορούμε να βελτιώσουμε και να επιταχύνουμε το περιβάλλον ανάπτυξής μας, αλλά και ουσιαστικά να κάνουμε τη χρήση tests πιο εύκολη.

This entry was posted in Ruby on Rails, Web development, Προγραμματισμός and tagged , , , . Bookmark the permalink. Post a comment or leave a trackback: URL για τράκμπακ.

Αφήστε σχόλιο

Your email is never published nor shared. Required fields are marked *

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*
*

  • Λάβετε ενημερώσεις μέσω RSS

  • Λάβετε ενημερώσεις μέσω e-mail

    Εισάγετε το e-mail σας:

    Παρέχεται από το FeedBurner