web-dev-qa-db-de.com

'Keine JUnit-Tests gefunden' in Eclipse

Ich bin neu bei JUnit und wir müssen es für Hausaufgaben verwenden. Unser Professor hat uns ein Projekt mit einer Testklasse, BallTest.Java, zur Verfügung gestellt. Wenn ich mit der rechten Maustaste auf> Ausführen als> JUnit-Test klicke, erhalte ich einen Popup-Fehler, der besagt, dass kein JUnit-Test gefunden wurde. Ich weiß, dass die Frage hier beantwortet wurde ( Keine Tests mit Testläufer 'JUnit 4' ) gefunden, aber Eclipse schließen, Neustarten, Reinigen und Bauen scheint nicht zu funktionieren. Unten finden Sie Screenshots meiner Laufkonfiguration, des Erstellungspfads und der Klasse, die ich testen möchte.

Run ConfigurationBuild Path

BallTest.Java

import static org.junit.Assert.*;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 

public class BallTest {

Ball ball;

/**
 * @throws Java.lang.Exception
 */
@Before
public void setUp() throws Exception {
    System.out.println("Setting up ...");
    Point2D p = new Point2D(0,0);
    ball = new Ball(p);
}

/**
 * @throws Java.lang.Exception
 */
@After
public void tearDown() throws Exception {
    System.out.println("Tearing down ...");
    ball = null;
}

/**
 * Test method for {@link Ball#getCoordinates()}.
 */
@Test
public void testGetCoordinates() {
    assertNotNull(ball); // don't need Assert. because of the import statement above.
    Assert.assertEquals(ball.getCoordinates().getX(), 0);
    Assert.assertEquals(ball.getCoordinates().getY(), 0);
}

/**
 * Test method for {@link Ball#setCoordinates(Point2D)}.
 */
@Test
public void testSetCoordinates() {
    Assert.assertNotNull(ball);
    Point2D p = new Point2D(99,99);
    ball.setCoordinates(p);
    Assert.assertEquals(ball.getCoordinates().getX(), 99);
    Assert.assertEquals(ball.getCoordinates().getY(), 99);
}

/**
 * Test method for {@link Ball#Ball(Point2D)}.
 */
@Test
public void testBall() {
    Point2D p = new Point2D(49,30);
    ball = new Ball(p);
    Assert.assertNotNull(ball);
    Assert.assertEquals(ball.getCoordinates().getX(), 49);
    Assert.assertEquals(ball.getCoordinates().getY(), 30);

    //fail("Not yet implemented");
}

public static void main (String[] args) {
         Result result = JUnitCore.runClasses(BallTest.class);
         for (Failure failure : result.getFailures()) { 
                System.out.println(failure.toString()); 
            } 
        System.out.println(result.wasSuccessful());  
}

}
43
iaacp

Klicken Sie mit der rechten Maustaste auf Projekt> Eigenschaften> Java-Build-Pfad> Testordner als Quellordner hinzufügen.

Alle Quellordner einschließlich Testklassen müssen sich im Eclipse Java Build Path befinden. Damit können die Quellen wie Haupt- und Testklassen in das Build-Verzeichnis kompiliert werden (der Eclipse-Standardordner ist bin).

59
iaacp

Wenn keine der anderen Antworten für Sie funktioniert, haben Sie Folgendes gefunden.

Starten Sie Eclipse neu

Ich hatte den Quellordner richtig konfiguriert und die Gerätetests korrekt kommentiert, aber es wurde immer noch "Kein JUnit-Test gefunden" für ein Projekt angezeigt. Nach einem Neustart hat es funktioniert. Ich habe STS 3.6.2 basierend auf Eclipse Luna 4.4.1 verwendet

15
khylo

klicken Sie mit der rechten Maustaste -> Build-Pfad -> Vom Build-Pfad entfernen und fügen Sie ihn erneut hinzu -> Klicken Sie mit der rechten Maustaste auf den Ordner 'Test'> Build-Pfad> Als Quellordner verwenden.

9
Sagar

Ich hatte das gleiche Problem und löste es wie folgt: Ich habe @Test Annotation gelöscht und es erneut eingetippt.

5
nikartix

Es scheint, dass Sie die Runner-Definition in Ihrer Testklasse verpassen.

import org.junit.runners.JUnit4;
@RunWith(JUnit4.class)
public class BallTest {
...
}
4
Klazen108
  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Eigenschaften -> Java-Erstellungspfad, und gehen Sie zur Registerkarte "Quelle". Fügen Sie dann Ihren Test-SRC-Ordner hinzu.
  2. Wählen Sie das Menü Projekt und deaktivieren Sie die Option "Automatisch erstellen", falls ausgewählt
  3. Wählen Sie Bereinigen und dann die Option "Automatisch erstellen"
  4. Starten Sie Eclipse neu und führen Sie Ihr Junit aus.
3
Ranjith Sekar

Jede Lösung hat für mich nicht funktioniert, bis ich den Namen meiner Testmethode geändert habe. Wenn der Name der Testmethode mit "Test" beginnt, ist OK . Ich bin neu in Android-Programmierung und es war für mich eine große Überraschung.

2
Igor Semkiv

Ich denke, Sie haben Ihre Testklassen außerhalb des SRC-Ordners erstellt. Sie können das obige Problem auf zwei Arten lösen:

  1. Fügen Sie Ihren Paketnamen in Java build path->source hinzu.

  2. Verschieben Sie Ihren package/class in den src-Ordner

Ich habe das gleiche Problem und habe auf diese Weise beide Lösungen gelöst.

2
pintu

Ich habe das Problem durch Konfigurieren des Buildpfads gelöst. Klicken Sie mit der rechten Maustaste auf das Projekt (oder einen der Unterordner) -> Buildpfad -> Buildpfad konfigurieren. Sobald das Eigenschaftsfenster geöffnet ist, klicken Sie auf die Registerkarte "Quelle" und fügen Sie Ihre Ordner "src" und "tst" hinzu. Seltsamerweise musste ich die Anmerkungen erneut eingeben. (Projekt-> Bereinigen oder Neustarten haben jedoch möglicherweise auch funktioniert).

1
ankit

Um dieses Problem zu beheben, setzen Sie am besten den öffentlichen Zugriffsmodifizierer für den Junit-Testfall-Klassennamen und führen das Szenario aus, indem Sie mit der rechten Maustaste auf Ihre Junit-Testfallklasse klicken und als Junit-Test ausführen.

0
Kshitij Vashist

junit4 setzt voraus, dass der Testklassenname Test als Suffix verwendet werden soll.

0
jiahut

Nachdem Sie eine Sicherungskopie des Ordners "src/test" erstellt hatten, wurde die Lösung aus dem Dateisystem entfernt und erneut erstellt.

Das war nachdem ich den Hinweis "Remove from build path" gemacht hatte und beim Öffnen des Projekts in STS 4 die Ordner durchgebrannt hat.

0
rsb2097

Die Laufkonfiguration für eine Testklasse kann eine andere Ursache (und Lösung) für dieses Problem verursachen.

Wenn Sie Konfigurationen ausführen (oder Debugging ausführen) (mit cmd-3 oder durch Klicken auf die kleinen Dropdown-Schaltflächen in der Symbolleiste), wird eine Konfiguration für jede Testklasse angezeigt, mit der Sie gearbeitet haben. Ich fand heraus, dass eine meiner Klassen, die nicht gestartet werden konnten, eine Laufkonfiguration hatte, bei der das Feld Testmethode versehentlich gefüllt wurde. Ich musste das klarstellen, damit es funktioniert. Wenn es deaktiviert ist, wird (alle Methoden) in hellem Text angezeigt.

Ich füge das seltsam hinzu - vielleicht gab es noch etwas anderes - es schien auch nicht für mich zu funktionieren, bis ich auch das Feld "Name" korrigiert habe, sodass es nur den Klassennamen wie die anderen JUnit-Laufkonfigurationen enthielt.

0
Joshua Goldberg

Ich habe @RunWith(Parameterized.class) verwendet, aber die @Parameters-Annotation in der öffentlichen statischen Parametermethode nicht hinzugefügt. Nach dem Hinzufügen der Anmerkung hat es funktioniert.

0
Saikat

Dieses Problem ist beim Aktualisieren von Projekten in verschiedenen Eclipse-Versionen aufgetreten. Für z. Junits, die gut in Mars 2.0 laufen, liefen nicht auf Neon. Folgendes hat für mich gearbeitet.

  1. Löschen Sie den Ordner .settings. Projekt in Eclipse importieren. 
  2. Quellordner entfernen Dann verwenden Sie die Ordner erneut als Quellordner. Beispiel: Entfernen Sie src/main/Java aus dem Erstellungspfad als Quellordner. -> Ok -> Legen Sie diesen Ordner erneut als Quellordner an. Wiederholen Sie es für main/resources, test/Java, test/resources 
0
Tushar Mishra

In Eclipse Photon müssen Sie möglicherweise JUnit 4 oder 5 zum Erstellungspfad hinzufügen. Klicken Sie mit der rechten Maustaste auf @Test, und wählen Sie "JUnit 4 zum Buildpfad hinzufügen" aus.

0
Jim

Versuche dies

Klicken Sie mit der rechten Maustaste auf die Unit Test Class.

  1. Wählen Sie "Ausführen als" -> Konfiguration ausführen
  2. Stellen Sie auf der Registerkarte "Test" sicher, dass im Feld "Test runner" die Option "JUnit 4" ausgewählt ist.
  3. Klicken Sie auf "Übernehmen"

Führen Sie jetzt den Test aus!

0
Prakash Ayappan