2015-11-29 17 views
10

Sto facendo il corso introduttivo di Scala da Coursera.Scala Intellij punti di interruzione ignorati

All'interno di Intellij, sto cercando di eseguire il debug ma i punti di interruzione vengono ignorati.

Diversamente da questa domanda: Can't debug a Scala application in IntelliJ + sbt-idea-plugin, non ricevo alcun errore.

Devo installare qualcosa o impostare alcune configurazioni Intellij?

+1

Assicurarsi di eseguire il debug. IntelliJ Idea ha pulsanti separati per l'esecuzione e per il debug. Debug è quello con l'icona "bug" – Archeg

+1

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

+0

Puoi caricare alcuni screenshot delle tue azioni? – RonyHe

risposta

0

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:

  1. Impostare i punti di interruzione facendo clic accanto al numero di riga che si desidera testare.
  2. 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. enter image description here

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. enter image description here

Speriamo che questo aiuti altre persone! Ho anche trovato alcuni trucchi che dovrei delineare:

  1. 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. enter image description here
  2. 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.
  3. 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.
Problemi correlati