Qualcuno mi ha recentemente guidato attraverso il debugging in InteliJ utilizzando scala/scalatest. Sto eseguendo InteliJ Idea 2017.2 con l'ultimo plug-in di lingua installato, nessun plugin SBT installato (per quanto posso dire questo è solo una parte del plugin scala ora). Speriamo che questo aiuti alcune altre persone:
- Impostare i punti di interruzione facendo clic accanto al numero di riga che si desidera testare.
- Supponendo che si stia utilizzando ScalaTest per impostare alcune condizioni ed eseguire il programma, è possibile fare clic con il tasto destro del mouse su una delle classi di test, quindi selezionare
Debug '[classname]'
dal menu a discesa. Questo dovrebbe aprire il riquadro di debug in basso.
Quando si utilizza InteliJ per eseguire il debug direttamente (non collegare tramite SBT ecc) che mi è stato effettivamente in grado di ottenere questo al lavoro. Non ho avuto successo con nessuna delle risposte a domande correlate che discutono di allegare a un processo di sbt in esecuzione (con almeno il più scalato).
Ci sono molte cose utili che intelij debug ti offre con maggiore scalabilità a questo punto. Diciamo che c'è un test che sta fallendo e tu vuoi capire perché. Nella finestra di debug, fare clic sulla scheda della console e verrà visualizzato un elenco dei test ordinati per suite con i segni rossi accanto a quelli non riusciti. Puoi fare clic con il pulsante destro del mouse su un singolo test e selezionare Debug dal menu a discesa per eseguire il debug di un solo test. È piuttosto utile.
Speriamo che questo aiuti altre persone! Ho anche trovato alcuni trucchi che dovrei delineare:
- A volte ho bisogno di ricaricare il progetto sbt (fai clic sulla freccia circolare sotto la scheda del progetto sbt a sinistra). Ci vuole un po 'di tempo, ma pulisce alcuni errori casuali sulle classi che non vengono trovate, e anche cose che sembrano non correlate come
One or more requested classes are not Suites
.
- A volte ricevo errori sulle classi ombreggiate non trovate, specialmente quando si usa docker tramite sbt (ad esempio per far ruotare un nodo db nei miei test). Per ovviare a ciò ho eliminato per prima cosa il jar compilato nella cache (
rm -r $HOME/.ivy2/cache/com.spotify/
ad esempio per eliminare il codice compilato nella cache che stava causando problemi), quindi ho ricaricato il progetto come nel passaggio 1.
- Se tutto il resto fallisce, assicurarsi che il progetto sia importato correttamente. Potrebbe essere necessario eliminare la cartella
.idea
nella cartella e reimportare il progetto sbt. Questo distrugge le tue impostazioni e tutto, ma ha funzionato per me come ultima risorsa in passato.
fonte
2017-10-08 18:05:43
Assicurarsi di eseguire il debug. IntelliJ Idea ha pulsanti separati per l'esecuzione e per il debug. Debug è quello con l'icona "bug" – Archeg
Come stai facendo funzionare la tua applicazione? Stai usando sbt? In tal caso, sbt dovrebbe essere in ascolto per le connessioni debugger. È possibile farlo utilizzando sbt -jvm-debug 5005. Quindi, è possibile creare una configurazione di debug remoto in IntelliJ. Le impostazioni di debug dovrebbero essere sufficienti, ma assicurati di controllare che anche la porta sia impostata su 5005. – irundaia
Puoi caricare alcuni screenshot delle tue azioni? – RonyHe