2010-05-16 36 views
7

Uso nuovo Eclipse. Crea un demo test con jUnit (ho aggiunto la libreria jUnit predefinita integrata in Eclipse). Quindi scrivo questo codice:Impossibile eseguire jUnit con Eclipse

import junit.framework.*; 

import org.junit.Test; 

public class SimpleTest extends TestCase { 
    public SimpleTest(String name) { 
     super(name); 
    } 
    public final void main(String method){ 

    } 

    @Test 
    public final void testSimpleTest() { 
     int answer = 2; 
     assertEquals((1+1), answer); 
    } 
} 

Ma non funziona. Nella scheda Debug:

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner at localhost:52754 
Thread [main] (Suspended (exception ClassNotFoundException)) 
URLClassLoader$1.run() line: not available [local variables unavailable] 
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method] 
Launcher$AppClassLoader(URLClassLoader).findClass(String) line: not available 
Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) line: not available 
Launcher$AppClassLoader.loadClass(String, boolean) line: not available 
Launcher$AppClassLoader(ClassLoader).loadClass(String) line: not available 

Come posso risolvere questo?

risposta

5

Tu, come molte persone, hai confuso JUnit 3 e JUnit 4. Se stai usando il nome JUnit 3, i tuoi test "test *" ed ereditano da TestCase. Se si utilizza JUnit 4, utilizzare le annotazioni.

+2

Mentre questo è vero, questa non è la * causa principale * di questo problema. Copypaste te stesso, metti un breakpoint su 'ClassNotFoundException' ed esegui in debug. Vedete, esattamente lo stesso problema fino alla rimozione del breakpoint. – BalusC

+0

Bello sapere la differenza tra le due versioni. –

+0

Come fare? Scrivo nuovo codice: import static org.junit.Assert. *; import org.junit.Test; classe pubblica SimpleTest { @Test public final void abcTest() { int answer = 2; assertEquals ((1 + 1), answer); } } Ma è ancora l'errore – KimKha

6

Rimuovere i punti di interruzione su Eccezioni quando si esegue in modalità di debug o semplicemente eseguire in modalità non di debug.

Nella vista di debug, sul top box a destra fare clic sul punti di interruzione scheda e deselezionare alcun punto di interruzione su un Exception, per esempio ClassNotFoundException e rieseguire il test.

+0

Non ho alcun punto di interruzione. E quando corro in modalità non di debug, dice Impossibile trovare la classe principale: org.eclipse.jdt.internal.junit.runner.RemoteTestRunner. Il programma uscirà. – KimKha

+0

@BalusC Grazie (ancora). Anche se potrebbe non aver aiutato KimKha, questo risolse il problema di sola modalità di debug che stavo avendo. – Tim

Problemi correlati