Eclipse: abilita le asserzioni


96

Sto eseguendo Eclipse Galileo. Come si abilitano le asserzioni in Eclipse?

Come suggerito da altri siti, ho provato ad aggiungere gli argomenti: -ea. Ho anche provato a cambiare il livello di conformità del compilatore a 1.4. Nessuno di questi suggerimenti ha funzionato.

Risposte:


163
  1. Vai al menu Run , quindi alla voce di menu Run Configurations .

inserisci qui la descrizione dell'immagine

  1. Nel pannello di sinistra , vai a Java Application, quindi vai a Assertions.

  2. Nel pannello di destra , scegli la scheda Arguments .

  3. Sotto il campo per VM arguments, digitare -eaper abilitare le asserzioni.

inserisci qui la descrizione dell'immagine

  1. Fare clic sul pulsanteApply e quindi .Run

Per impostarlo globalmente come predefinito per tutto :

  1. Vai al menu Window(se sei su Windows) o vai al menu Eclipse(se sei su Mac). Per Linux potrebbe essere qualcosa di simile.

  2. Vai a Preferences.

  3. Scegli Java, quindi Installed JREsdal pannello di sinistra .

  4. Seleziona il tuo JRE , quindi fai clic sul Edit...pulsante nel pannello di destra .

  5. Nel Default VM argumentscampo, aggiungi -ea.


Questo non funziona per Android, apparentemente hai bisogno di JUnit Assert.
Noumenon

42
Per impostarlo globalmente come predefinito per tutto, vai su Finestra -> Preferenze -> Java / JRE installati. Seleziona il JRE e fai clic su "Modifica ...". Nel campo "Argomenti VM predefiniti", aggiungi "-ea".
Silveri

@nbro Non ho un Assertionsoggetto sotto Java Application. Forse intendevi l'attuale configurazione della corsa?
John McClane

@JohnMcClane È possibile che versioni differenti di Eclipse abbiano pannelli, pulsanti e menu differenti. Se ho aggiunto specificamente quell'istruzione (ma è stato molto tempo fa), è probabile che l'abbia provata sulla mia versione (come puoi anche notare dalle immagini, sto usando un mac, quindi è possibile che le versioni di Eclipse sono leggermente diverse su altri sistemi).
nbro

1
@JohnMcClane Sì, penso che tu abbia ragione. È possibile che quelli fossero nomi di progetti. Piuttosto che andare su "Asserzioni", dovresti andare al nome del tuo progetto (immagino).
nbro

36

Se si vuole risolvere questo problema a livello globale per tutti i test JUnit poi andare Preferences > Java > JUnite in alto fare clic sulla casella di controllo " Aggiungi 'EA' per argomenti VM durante la creazione di nuova configurazione di lancio JUnit " Ora Eclipse non è vero bug per ogni nuovo test si voglio correre. Per i test esistenti devi rimuovere le loro configurazioni di esecuzione in Run Configuration > JUnit.


5
C'è un modo per aggiungere -ea a tutte le configurazioni di avvio di JUnit esistenti ?
mxro

Per essere aggiunto -ea ai test esistenti è necessario rimuovere le configurazioni di esecuzione
Honza

11

Per eseguire questa operazione globalmente per tutte le esecuzioni Java, modificare le proprietà dei JRE installati.

Ad esempio: Windows -> Preferenze -> evidenzia il JRE predefinito -> fai clic su Modifica ... -> Nella casella di input degli argomenti VM predefiniti, inserisci -ea -> fai clic sul pulsante Fine.

Questo ha funzionato su Eclipse Kepler SR2.


5

Sui progetti Maven puoi eseguire il metodo principale con il percorso di classe auto-magic in questo modo:

bash> export MAVEN_OPTS="-ea" && mvn exec:java -Dexec.mainClass="com.your.class.with.main"
cmd> set MAVEN_OPTS="-ea" && mvn exec:java -Dexec.mainClass="com.your.class.with.main"

In linux / eclipse puoi aggiungere la finestra del terminale con bash per un uso più conveniente.


4

Vuoi abilitare le asserzioni per un'applicazione che stai eseguendo da Eclipse? Di solito aggiungo solo -ea ai parametri della riga di comando nel profilo "Esegui come".


1
Sì, è così che di solito lo faccio anche quando eseguo dalla riga di comando, motivo per cui ho pensato che l'aggiunta di quegli argomenti della VM nelle preferenze avrebbe funzionato. Grazie per l'input. In conferma non ero pazzo per pensare che dovrebbe farlo ..
beh in realtà l'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.