9

È 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

+0

Vedere la mia risposta di seguito sull'utilizzo dell'istruzione debugger con Firefox + Firebug. –

risposta

5

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.

+0

Ah, non ho trovato questo problema me stesso. Tuttavia, l'ho svalutato ora che so che esiste. – Christoph

10

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))

+1

Questa è un'ottima soluzione! Però, non so come uccidere il server ... – Igal

+1

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). –

+0

Grazie, ho creato qualcosa di simile per i miei test scritti con jasmine jasmine.currentEnv_.currentRunner_.finishCallback = function() {}; –

1

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?

+2

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

+0

Grazie per il suggerimento! –

Problemi correlati