È fantastico che con Resharper 6 si possano scrivere test di qunit ed eseguire quelli con il runner di test di ricerca integrato. Tuttavia, mi chiedo se sia possibile impostare i breakpoint nei test e il codice in prova. Il problema è che, ogni volta che apre il browser, utilizza un numero di porta randomizzato diverso, il che significa che non puoi semplicemente impostare i breakpoint nel browser ed eseguire nuovamente i test colpendo F5. Quindi mi chiedo, è anche possibile in qualche modo?Come posso impostare i punti di interruzione nei miei test qunit quando si utilizza il runner di prova Resharper
risposta
Purtroppo, al momento non è possibile - vedere this request. Quello che ti suggerisco di fare adesso se hai bisogno di eseguire il debug è usare QUnit canonicamente - creare una pagina HTML, rilasciare le tue librerie JS, i test e il QUnit e inserire gli elementi QUnit HTML per visualizzare i risultati. In questo modo, sarai in grado di impostare i breakpoint in JS.
Ah, non ho trovato questo problema me stesso. Tuttavia, l'ho svalutato ora che so che esiste. – Christoph
Un approccio più semplice con Resharper e Visual Studio.
Basta mettere come prima riga nel file js:
QUnit.moduleDone = function() {}
Il test ReSharper non finirà e si può aggiornare la pagina in browser come molte volte tu vuoi. È possibile inserire un punto di interruzione e rieseguire il test premendo F5 nel browser.
Esempio:
Nella parte superiore della pagina si dovrebbe avere:
- vostri riferimenti prima
- QUnit.moduleDone = function() {};
in questo modo:!
/// <reference path="Scripts/jquery-ver**.min.js"/>
/// <reference path="Scripts/jquery-ui.min.js"/>
/// <reference path="your_test_file.js"/>
QUnit.moduleDone = function() {};
Questo funziona perfettamente)
Nel browser - basta premere F12 (finestra del debugger aperta), impostare i punti di interruzione e aggiornare la pagina con F5))
Questa è un'ottima soluzione! Però, non so come uccidere il server ... – Igal
puoi uccidere il server facendo clic su "interrompi l'esecuzione" (l'icona del segno di stop), quindi "interrompi l'esecuzione" (l'icona a forma di mano rossa). –
Grazie, ho creato qualcosa di simile per i miei test scritti con jasmine jasmine.currentEnv_.currentRunner_.finishCallback = function() {}; –
Se si utilizza Firefox con il plugin Firebug, è possibile eseguire questa operazione: aggiungere un'istruzione debugger al codice in cui si desidera interrompere:
var x = 2;
debugger;
...
Impostare l'opzione Firebug 'Attiva per tutte le pagine Web' su true. Nelle opzioni di ReSharper, Test> JavaScript imposta Firefox come browser da utilizzare (se non è già quello predefinito).
Ora il debugger di Firebug si interrompe nell'istruzione debugger.
PS Ho provato questo con Chrome ma non riuscivo a farlo rompere. qualcuno sa come farlo?
Lo stesso funziona con Chrome se hai già aperto Dev Tools. Se gli strumenti di sviluppo non sono già aperti, non si fermerà quando viene visualizzato 'debugger'. – elwyn
Grazie per il suggerimento! –
Vedere la mia risposta di seguito sull'utilizzo dell'istruzione debugger con Firefox + Firebug. –