2012-11-15 18 views
14

Running Guard con Spin funziona alla grande per mantenere i miei test veloci, tranne quando le risorse sono rilevanti e devono essere compilate. Sembra che gli ambienti di test ricompilino tutte le risorse ogni volta che cambio qualcosa in esse. Ho visto esempi di script di distribuzione che ricompilano solo risorse la cui origine è cambiata. Questo può essere fatto anche per i test? O c'è un altro modo per accelerare la compilazione degli asset per i test?Come velocizzare la compilazione delle risorse per i test?

Sto utilizzando una configurazione piuttosto specifica, quindi sarò lieto di fornire ulteriori informazioni se necessario, anche se ritengo che la risposta a questa domanda possa essere utile in molti più casi rispetto al mio.

+0

Questa è una buona domanda! quindi sto votando come ho sofferto da una questione simile di tempo che richiede sulla pre-compilazione delle risorse. Tuttavia, per quanto ne so, non c'è molto disponibile sull'accelerazione della pre-compilazione delle risorse! Good Luck – TheMouseMan

+1

In genere eseguo il precompilazione delle risorse prima di eseguire la suite. Se stai utilizzando le guide 3.2+, è disponibile https://github.com/ndbroadbent/turbo-sprockets-rails3. Con questo la compilazione completa sarà molto più veloce. Se la tua suite è long-running e/o gira su CI e fai un pre-compilazione completo, ho a disposizione anche una soluzione S3. Fammi sapere quale versione dei binari stai correndo – mnelson

+0

Tutto sembra promettente. Sono su Rails 3.2.8 in questo momento, aggiornerò a 3.2.9 molto presto. Sono molto interessato alla tua soluzione S3, dal momento che sto eseguendo i miei test con la guardia (penso che sia ciò che intendi per long-running), quindi la semplice precompilatura non sarebbe sufficiente. –

risposta

1

Puoi dare un'occhiata a this article scritto due mesi fa. Sembra un compito piuttosto complesso. Nathan ha scritto un solo gem that precompiles modifiche, apportate alle risorse. Può essere utilizzato in sviluppo e testing env.

MODIFICA: Questo è another article, correlato ad accelerare i nostri test. Ha un diverso punto di vista sui test di js.

+0

Come i suggerimenti, ma questo non sembra velocizzare i miei test, soprattutto perché sembra che l'ambiente di test debba sempre compilare le risorse quando viene avviato. Penso che idealmente la testsuite dovrebbe aspettare fino a quando la compilazione non sarà completata. –

+0

È notevole, che esiste un sito speciale dedicato all'argomento. Ho sentito parlare di [Ruby5] (http://ruby5.envylabs.com/) e si chiama (non ci crederai) [fastrailstests.com] (http://www.fastrailstests.com). Come ha detto una volta Mikael Jackson: "Non sei solo". –

+0

Beh, quel sito non contiene alcuna informazione e non sto solo dando via la mia email, sto ricevendo abbastanza spam così com'è. Sto cercando una risposta chiara al mio problema;) E 'michael! = Mikael', ma The King ha detto che;) –

0

È possibile ad esempio evitare di aggiungere require_tree nei file js e css dell'applicazione.

Inoltre, utilizzare le estensioni file appropriate - se qualcosa è js - quindi denominarlo come normali file js. Lo stesso per css e scss.

È possibile attivi anche di precompilazione a livello locale per lo hanno compilato localmente su sviluppo da parte di comando rake assets:precompile - ma ricordatevi di eliminarlo dopo i test a vedere i cambiamenti in attività la prossima volta (si può essere generato nella cartella vendor)

+0

Questi sono veri ma erano anche nella risposta di Qumara. Conosco le risorse: precompilare, qualcosa di simile sarebbe bello per i test, perché ora alcuni test falliscono perché devono attendere la compilazione delle risorse. –

-2

Sono sicuro, ma si può provare:

in application.js file di scrivere tutti js file per albero come questo:

// = richiedono jquery

// = richiedono jquery_ui

// = richiesta jquery.ui.core

+0

Questo è esattamente ciò che ofcapl ha detto. –

Problemi correlati