Se si utilizza il pacchetto karma-phantomjs-launcher NPM nei test karma, è possibile aggiungere il seguente frammento nel file karma.conf.js
per l'esecuzione PhantomJS in modalità debugger:
browsers: ['PhantomJS_custom'],
// you can define custom flags
customLaunchers: {
'PhantomJS_custom': {
base: 'PhantomJS',
debug: true
}
}
Dopo questo, scrivere una dichiarazione debugger;
in cui si desidera per posizionare il punto di interruzione nel codice.
Ora, quando si avvia il programma di test del karma, si vedrà che PhantomJS sta aspettando che il browser si colleghi alla porta del debugger per avviare l'esecuzione dei test.
29 12 2016 13:14:25.269:INFO [launcher]: Starting browser PhantomJS
29 12 2016 13:14:25.325:INFO [phantomjs.launcher]: ACTION REQUIRED:
29 12 2016 13:14:25.325:INFO [phantomjs.launcher]:
29 12 2016 13:14:25.326:INFO [phantomjs.launcher]: Launch browser at
29 12 2016 13:14:25.326:INFO [phantomjs.launcher]: http://localhost:9000/webkit/inspector/inspector.html?page=2
29 12 2016 13:14:25.326:INFO [phantomjs.launcher]:
29 12 2016 13:14:25.326:INFO [phantomjs.launcher]: Waiting 15 seconds ...
Punta il tuo chrome all'indirizzo specificato nei registri. Ora vedrai un'interfaccia di debugger servita da Phantomjs. Il codice viene eseguito nel motore PhantomJS ma è possibile osservare i punti di interruzione, valutare espressioni ed eseguire molte operazioni di debug da qualsiasi browser basato su webkit.
fonte
2016-12-29 07:45:18
Ci possono essere modi migliori, ma vorrei solo passare attraverso gli strumenti di sviluppo del tuo browser. Imposta un breakpoint in chrome, o usa un'istruzione 'debugger;'. –
Lo farei, ma il problema è che sto affrontando un problema specifico su PhantomJS. I test funzionano bene su chrome e firefox. –
Ciò che Nick significa è che esiste un debugger remoto in puro phantomjs e puoi impostare i breakpoint con 'debugger;'. –