Nessun test trovato con il test runner ‘JUnit 4’

Il mio test Java ha funzionato bene con Eclipse. Ma ora, quando riavvio test dal menu di esecuzione, ottengo il seguente messaggio:

No tests found with test runner 'JUnit 4' 

Nel file .classpath ho tutti i file jar e alla fine ho:

    

Come posso risolvere questo errore e riavviare i test?

questo mi è appena successo. La ricostruzione o il riavvio di Eclipse non hanno aiutato.

Ho risolto il problema rinominando uno dei metodi di test per iniziare con “test …” (stile JUnit3) e quindi sono stati trovati tutti i test. L’ho rinominato in precedenza e funziona ancora.

Quando otteniamo questi errori sembra che Eclipse sia semplicemente confuso. Riavvia Eclipse, aggiorna il progetto, puliscilo, fa in modo che Eclipse lo ricostruisca e riprova. La maggior parte delle volte funziona come un fascino.

Nel menu di scelta rapida della directory ‘test’ scegli ‘Costruisci percorso’ -> ‘Utilizza come cartella sorgente’. Eclipse dovrebbe vedere i file unitTests.java come file di origine. Avviso ‘Nessun test JUnit trovato’ si verifica perché non ci sono file unitTests.class nella directory ‘build’

Controlla se la tua class di test estende “TestCase”. se è così, rimuovi quella clausola. La tua class non ha bisogno di estendersi dalla class “TestCase”. È la maggior parte dei casi che ho incontrato.

 public class MyTestCase extends TestCase{ @Test public void checkSomething() { //... } } //Result> AssertionFailedError: No test Found in MyTestCase 

Seguire TestCase dovrebbe andare bene.

 public class MyTestCase { @Test public void checkSomething() { //... } } //Works fine 

Stavo affrontando lo stesso problema e l’ho debugato su cattivi esempi sul web e internals di junit. Fondamentalmente non rendere la tua class estendere TestCase come alcuni esempi mostrano per Junit 4.x. Utilizzare alcuni test di convenzione di denominazione o se si desidera avere un’annotazione, è ansible utilizzare @RunWith (JUnit4.class).

Se hai bisogno di accedere per affermare metodi estendi Assert o usa le importazioni statiche.

Se la tua class estende TestCase, anche se usi Junit 4 Runner verrà eseguito come 3. Questo perché nel codice di inizializzazione c’è il rilevamento:

Vedi JUnit3Builder e le linee:

 boolean isPre4Test(Class< ?> testClass) { return junit.framework.TestCase.class.isAssignableFrom(testClass); } 

Questo restituisce true e il test per la compatibilità con junit4 non verrà provato.

Prova ad aggiungere

@Test sopra il metodo per il test come questo

 @Test public void testParse() { } 

Nessuna prova in JUnit4. Utilizzare invece le annotazioni o utilizzare le convenzioni del nome JUnit3 precedenti.

Esempio:

 @RunWith(Suite.class) @SuiteClasses({YourClassWithTests.class}) 

Ho trovato la risposta:

Ho ricevuto questo errore quando ho eseguito il test standalone da Eclipse (tasto destro del mouse sul metodo e scegliere di eseguire come test di junit),

Quando ho eseguito la class completa come test di junit, il test è stato eseguito correttamente con i parametri.

Quando affronto questo problema, mi limito a modificare il file e salvarlo … funziona come un incantesimo

Questo è successo anche a me. Ho provato a riavviare Eclipse e ho anche prefisso i miei metodi di test con i test. Nessuno dei due ha funzionato.

Il seguente passaggio ha funzionato: modifica tutti i metodi di test presenti in @BeforeClass e @AfterClass in metodi statici.

vale a dire se hai il tuo metodo di prova nel formato seguente:

 @BeforeClass public void testBeforeClass(){ } 

quindi cambialo in:

 @BeforeClass public static void testBeforeClass(){ } 

Questo ha funzionato per me.

Il mio problema era la dichiarazione di import org.junit.Test; è scomparso (o non è stato aggiunto?). Dopo averlo aggiunto, ho dovuto rimuovere un’altra dichiarazione di import (Eclipse ti suggerirà quale) e tutto ha ripreso a funzionare.

Molto tardi, ma quello che mi ha risolto il problema era che i miei nomi dei metodi di prova erano tutti iniziati con lettere captial: “public void Test”. Rendere funzionante il caso in minuscolo.

Ho provato la soluzione di Germán. Ha funzionato per tutto il metodo della mia class, ma ho un sacco di lezioni nel mio progetto.

Così ho provato a rimuovere dal percorso di costruzione e poi ri-aggiungendolo. Ha funzionato perfettamente.

Spero che sia d’aiuto.

Ancora un’altra soluzione ansible che getterò sul ring: non ero in grado di eseguire la class di test né dalla finestra dell’editor, né dal Package Explorer, ma facendo clic con il tasto destro sul nome della class nella vista Struttura e selezionando Esegui come JUnit Il test ha funzionato … Vai a capire!

Può essere che la configurazione di avvio di JUnit fosse per una singola class di test e in qualche modo hai modificato tale configurazione in “Esegui tutti i test in una cartella di origine, pacchetto o progetto”

Ma ciò potrebbe far scattare il messaggio di errore “Nessun test trovato con il test runner” JUnit 4 “”.

O hai fatto una modifica nella tua class di test, rimuovendo l’annotazione @Test .
Vedi questa pagina wiki .

Ho anche affrontato lo stesso problema durante l’esecuzione del test JUnit. Ho risolto questo problema inserendo l’annotazione @ Test appena sopra la funzione test principale.

Quello che ha risolto il mio caso è stato simile alla risposta di @ JamesG: ho riavviato Eclipse, ho ricostruito il progetto e l’ho aggiornato; MA prima che io facessi tutto ciò, io ho chiuso il progetto (fare clic con il tasto destro del mouse su package explorer -> Close Project) e poi riaprirlo. Quindi ha funzionato.

Una soluzione alternativa che ho trovato prima di trovare la soluzione definitiva che ho appena descritto: copia la class di test ed esegui la class di test come JUnit.

Controlla se la cartella in cui si trovano i test è una cartella di origine. In caso contrario, fare clic con il pulsante destro del mouse e utilizzare come cartella di origine.

Chiudere e aprire il progetto ha funzionato per me.

Sei anni dopo … e ci sono ancora problemi con Eclipse e di tanto in tanto non riesco a trovare JUnits.

Nel mio Eclipse Mars 2 ho scoperto che non riconoscerà le classi di test @Test da git se ci sono più di 9 o 10 annotazioni @Test nel file. Devo commentare qualsiasi test extra, eseguire la class di test, quindi decommentarli e rieseguire la class. Vai a capire…

Il tuo progetto Eclipse è basato su Maven? In tal caso, potrebbe essere necessario aggiornare la versione di m2eclipse.

Solo una breve nota: ho un progetto in Eclipse basato su Maven e generato inizialmente usando la procedura guidata “nuovo progetto Maven” in Eclipse. Sto usando JUnit 4.5 per i test di unità, e potrei tranquillamente eseguire i test dalla riga di comando usando maven, e singoli test di Eclipse usando run come test di JUnit …. Tuttavia, quando ho provato a eseguire tutti i test nel progetto richiamando l’esecuzione come test JUnit … sul nodo radice del progetto, Eclipse ha lamentato ” nessun test trovato con il test runner junit 4 “. Risolto aggiornando m2eclipse all’ultima build di sviluppo stabile dal sito di aggiornamento di m2eclipse (in particolare, ho aggiornato dalla versione 0.9.8.200905041414 alla versione 0.9.9.200907201116 in Eclipse Galileo).

Da qui: http://nuin.blogspot.com/2009/07/m2eclipse-and-junit4-no-tests-found.html

Questo è successo anche a me. Ho scoperto che in Eclipse non ho creato un nuovo file di Java Class ed è per questo che non si stava compilando. Prova a copiare il tuo codice in un file di class java se non è già lì e poi compila.

Ho scoperto che Eclipse sembra eseguire solo test in stile JUnit 3 se la tua class di test si estende da TestCase . Se rimuovi l’ereditarietà, le annotazioni hanno funzionato per me.

Attenzione che è necessario importare staticamente tutti i metodi richiesti assert* come import static org.junit.Assert.* .

Sto anche eseguendo Eclipse con Maven (m2e 1.4). I test erano in esecuzione con Maven, ma non con Eclipse … anche dopo diverse applicazioni del Maven>Update project .

La mia soluzione era aggiungere alcune righe nel percorso .class generato da m2e. Le linee ora stanno attaccando.

       

Ho questo problema di volta in volta. La cosa che risolve di più il problema per me è eseguire il test JUnit da Run configuration … assicurando che JUnit 4 sia impostato come runner di test.

In genere, vedo questo problema quando si tenta di eseguire As … Esegui il test di Junit dal menu di scelta rapida in Esplora pacchetti. Se fai clic con il tasto destro sul codice per il test che stai tentando di eseguire e invece di selezionare Esegui come … Junit Test, seleziona Esegui configurazioni … assicurati che Project, Test Class e runner di test siano impostati correttamente, fai clic su Apply, quindi esegui funziona tutto il tempo per me.

Ho iniziato a lavorare con Selenium ed Eclipse nel mio lavoro e stavo facendo il mio primo test automatizzato e ho eliminato dal codice @Before, @Test e @After note e stavo avendo questo problema “Nessun test trovato con test runner junit4” .

La mia soluzione è stata semplicemente quella di aggiungere nuovamente le note @Before, @Test e @After e con ciò il mio script ha funzionato. È importante non cancellarlo dal codice.

Questo è un semplice test che usa Google per cercare qualcosa:

 import java.util.regex.Pattern; import java.util.concurrent.TimeUnit; import org.junit.*; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.Select; public class TestingClass { private WebDriver driver; //Creates an instance of the FirefoxDriver **@Before** public void SetUp() throws Exception { driver = new FirefoxDriver(); } **@Test** //Search using keyword through Google Search public void TestTestClass2 () throws Exception { driver.get("http://www.google.com.mx/"); driver.findElement(By.name("q")).sendKeys("selenium"); Thread.sleep(10000); driver.findElement(By.name("btnG")).click(); Thread.sleep(10000); } //Kill all the WebDriver instances **@After** public void TearDown() throws Exception { driver.quit(); } } 

Usando ScalaIDE (3.0.4-2.11-20140723-2253-Typesafe) stavo riscontrando un problema simile con la Right Click Scala Test Class-> Run As -> Scala Junit Test menu contestuale Right Click Scala Test Class-> Run As -> Scala Junit Test .

Ho provato a modificare la class (ma non a un errore di compilazione), a pulire, a chiudere il progetto, a chiudere Eclipse. Nessuno di questi ha funzionato per ripristinare il menu di scelta rapida per le classi che in precedenza avevano funzionato bene. Le classi di test non utilizzano l’annotazione @Test e utilizzano invece l’ @RunWith(classOf[JUnitRunner]) nella parte superiore della class utilizzando il codice ScalaTest.

Quando ho provato a scegliere Scala Junit Test direttamente dall’editor di avvio di Run Configuration, ho ricevuto la finestra di dialogo dalla domanda. La risposta di Footix29 è stata la chiave per me.

Ho notato che anche se avevo ripulito il mio progetto alcune volte, le mie classi nella directory / bin non erano state effettivamente ricostruite in un istante.

Ecco come sono tornato indietro nel menu di scelta rapida e sono riuscito a eseguire nuovamente Scala Junit Test :

  • pulire manually le classi eliminando /bin/* tramite Explorer
  • Project -> Clean il progetto insieme a una ricostruzione completa

Sospetto che una modifica di class in generale sia in grado di pulire alcuni stati salvati di Eclipse e farlo andare di nuovo. Nel mio caso tutte le precedenti classi di lavoro che ho provato non avevano funzionato, quindi il passaggio pulito manual era solo il martello di cui avevo bisogno. Tuttavia, dovrebbero funzionare anche altri trucchi che influenzano il concetto di percorso / stato di class di Eclipse.

Inoltre, penso che questo comportamento sia stato in parte provocato dal tentativo di ridefinire una class Scala rinominandola (che l’IDE di Scala Eclipse fa schifo), dove tutta la pulizia dopo la modifica iniziale del file è manuale. Non ci sono stati errori di compilazione, ma non c’erano avvertimenti che mi aspettavo che significasse qualcosa che era definitivamente bloccato nelle informazioni sullo stato di build di Eclipse.

C’è un’altra possibilità, potresti aver cambiato Junit Test dalla versione precedente (ad es. Junit 3) a Junit 4. È così seguire i seguenti passaggi: –

 1. Right Click on class 2. Select Run as >> "Run Configurations" 3. Check your "Test Runner" option in new window 4. If it not same as maven change it for example change it as Junit 4. 

Fare clic con il tasto destro sul progetto -> Dipendenze di costruzione -> rimuovere quelli che sono stati esclusi dal percorso di costruzione -> Fare clic su OK

Fare clic destro sul progetto -> Maven -> Aggiorna progetto.

Dovresti essere buono per andare ..

È ansible risolvere questo problema facendo come segue:

  • Fai clic destro sulla cartella denominata ‘Test’> Costruisci percorso> Utilizza come cartella di origine
  • Oppure puoi impostare classpath come: . Sostituisci “src / test / java” con il tuo pacchetto di test

Questo problema si è verificato a causa del fatto che junit non è in grado di riconoscere il codice sorgente: D