2013-03-14 17 views
5

In un'applicazione di rails che sto sviluppando (su OS-X), sto trovando l'esecuzione della suite di test tramite rspec che si blocca sempre più frequentemente. Non succede ogni volta. Ho provato ad aggiungere --format documentation quando si esegue la suite per vedere se succede sempre nello stesso posto, e non è così.Il processo Rspec si blocca in diversi punti, il processo non può essere eliminato. Come diagnosticare?

Ho provato a eliminare il processo con kill -9. Quindi cambia il nome in (rubino) con lo stato del processo ?E. Questo link suggerisce che il processo è bloccato in attesa che una chiamata di sistema termini. Devo riavviare la mia macchina ogni volta che succede per poter eliminare questo processo.

Ho provato a reinstallare rvm, ruby, mysql e imagemagick. Questo progetto utilizza la gemma imagemagick (tramite il mini_magick) e ho il sospetto che potrebbe trattarsi di uno di questi comandi che sta causando il blocco di rspec. Ho provato ad aggiungere le dichiarazioni puts su ciascuno dei comandi mini_magick per assicurarmi che finiscano di essere eseguite, e tutto sembra a posto.

Sto cercando suggerimenti su come diagnosticare questo problema.

+0

Utilizzare l'opzione '-e' per eseguire solo determinate specifiche in base al modello fornito. Esegui 'rspec -h' per maggiori informazioni. – iain

+0

Il problema non si verifica quando si eseguono specifiche individuali o un piccolo sottoinsieme di specifiche (singolo file), ma piuttosto quando si esegue l'intera suite di test. Sto cercando un modo per eseguire il debug su cosa è bloccato il processo? – MAckerman

+0

Penso che dovrai pubblicare almeno alcune delle tue specifiche, almeno è possibile avere un'idea di cosa stanno cercando di fare. Inoltre, controlla che le tue specifiche non siano in esecuzione in un ordine casuale. Se hai usato RSpec per generare il file spec_helper, aggiunge l'ordine casuale come predefinito. – iain

risposta

0

È possibile che il problema sia un errore di dipendenza degli ordini, è possibile passare il seme e l'ordine rimane coerente. RSpec stampa il numero casuale usato per seminare il randomizzatore. Utilizzare questo numero per eseguire rspec con lo stesso ordine --order rand:3455

Problemi correlati