2010-04-01 8 views
9

voglio iniziare a testare il codice JavaScript nelle mie applicazioni Rails con qUnit e mi chiedo come mantenere il test JavaScript e la pagina HTML di prova corridore sotto il controllo di versione (Sto usando Git, ovviamente) ma li tengo dal server di produzione quando distribuisco l'app con Capistrano. Il mio primo pensiero è di lasciare che Capistrano invii tutto il codice come al solito, inclusi i file di test, e scriva un'attività per eliminarli alla fine del processo di distribuzione. Questo sembra una sorta di trucco, però. Esiste un modo più semplice per dire a Capistrano di ignorare certe parti del repository durante la distribuzione?Esclusione di file da essere schierato con Capistrano mentre ancora sotto il controllo di versione con Git

risposta

0

Si potrebbe avere le prove in un ramo di prova (su cui è unire il ramo principale prima di ogni prova)

In questo modo, quando si chiede Capistrano di distribuire ciò che è sulla vostra ramo principale, nessun test di qualsiasi tipo è mai incluso

7

Ci sono molti modi per farlo, è possibile mantenere i test in un ramo di test dell'app come suggerito da VonC, ma ciò significherebbe che si farebbero tutte le modifiche nel ramo principale e quindi si sincronizzeranno con il test ramo. (Non senza i suoi meriti, ma a volte un dolore)

È possibile utilizzare il file .gitignore alla directory.

Qualsiasi file che si aggiunge a questo non verrà aggiunto al repository. Dal momento che capistrano tira e invia solo dal tuo repository, non avere i file inclusi li terrà fuori dal tuo server di produzione.

Ultimo ma non meno importante, se si desidera che i file di test nel repository principale per il controllo di versione, è possibile aggiungere una ricetta per il vostro file di configurazione/deploy.rb .. qualcosa di simile:

desc "Remove Test Files" 
    task :remove_test_files , :roles => :web do 
     sudo %{rm -f #{current_path}/public/javascripts/testfile.js} 
     sudo %{rm -f #{current_path}/public/javascripts/anothertestfile.js} 
    end 

after 'deploy:remove_test_files' 

E specificare i file che si desidera rimuovere, rimuoveranno tutti i file desiderati durante la distribuzione. :)

Qualsiasi dei precedenti funzionerà. Scegli il metodo che funziona per te.

+0

non ho visto la tua risposta al momento. +1 – VonC

+0

Grazie Von. Apprezzalo. –

+0

@VonC & Dustin - Come raccomanderesti la gestione se i tuoi file cap sono nel tuo repository di distribuzione ma non li vuoi sul tuo server di produzione? Verrebbero distribuiti a releases/variable_directory_name – csi

Problemi correlati