come dire autotest per monitorare correttamente le modifiche nei sorgenti app?
-
24-10-2019 - |
Domanda
Voglio ottenere autotest per eseguire test di accettazione Steak ogni volta che uno dei file in questione mia rotaie di app è cambiato. Dopo aver studiato proprie configurazioni Autotest di RSpec e cetriolo di, sto cercando le seguenti mappature:
Autotest.add_hook :initialize do |at|
at.add_mapping(%r%^spec/acceptance/.*_spec.rb$%, true) { |filename, _|
filename
}
at.add_mapping(%r%^app/(models|controllers|helpers|lib)/.rb$%) {
at.files_matching %r%^spec/acceptance/._spec.rb$%
}
at.add_mapping(%r%^app/views/(.*)/.rb$%) {
at.files_matching %r%^spec/acceptance/._spec.rb$%
}
end
il primo funziona: ogni volta che una specifica Bistecca viene modificato, esso viene eseguito di nuovo.
, ma il secondo e il terzo non lo fanno. modificare i file di origine sotto le sottodirectory / app appena viene ignorato.
qual è il modo corretto per ottenere questi mapping al lavoro?
grazie Oliver
Soluzione
Ho appena cambiato il mio file .autotest
aggiungere:
Autotest.add_hook :initialize do |at|
at.add_mapping(%r%^spec/acceptance/.*_spec.rb$%, true) { |filename, _|
filename
}
at.add_mapping(%r%^app/(models|controllers|helpers|lib)/.*rb$%, true) {
at.files_matching %r%^spec/acceptance/.*_spec.rb$%
}
at.add_mapping(%r%^app/views/(.*)$%, true) {
at.files_matching %r%^spec/acceptance/.*_spec.rb$%
}
end
E questo funziona, ma non so gli effetti collaterali di invocare prove di collaudo prima di altri (la bandiera true
su add_mapping
)
Altri suggerimenti
Per RSpec 1.3:
Ho dovuto usare il: gancio post_initialize perché il built-in inizia supporto RSpec cancellando tutte le mappature esistenti. Così si stava schiarendo questi fuori e quindi aggiungendo le mappature RSpec predefinite. Ma, usando il gancio post_initialize (anziché: inizializzazione nella prima riga) risolto
.Ho anche dovuto mettere tutto questo in autotest / discover.rb invece di .autotest.