2009-07-16 3 views
19

Gibt es eine Möglichkeit, JUnit-Tests aus mehreren Projekten bequem schnell in Eclipse zu starten?Führen Sie Junit-Tests aus mehreren Projekten bequem schnell in Eclipse aus

Mit dem JUnit-Runner können Sie ein Paket oder einen Ordner definieren, in dem alle enthaltenen Tests ausgeführt werden.

Gibt es eine Möglichkeit, dies mit Tests aus mehreren Projekten in Eclipse zu tun? Vorzugsweise sollte es über den Junit-Runner sein. Wenn es einen Weg gibt, es über einen Ant-Job schnell zu haben (also nicht von einem kompletten Build mit Ameisen vorher abhängen), wäre das auch nett.

Antwort

3

Sie können nicht über die Benutzeroberfläche tun. Betrachtet man die Erweiterungspunkte, wird das Element der höchsten Ebene, für das JUnit sammeln wird, das Projekt sein. Ich nehme an, Sie könnten ein Plugin schreiben, um ein zusätzliches Kontextelement/eine Verknüpfung für ein Arbeitssatz beizutragen, das Arbeiten legt die Elemente der obersten Ebene im Paket-Explorer fest und gruppiert die Projekte, die Sie testen wollen, unter diesem Arbeitssatz. Das Problem dabei ist, dass Sie Probleme bei der Definition der Kontextregeln zum Aktivieren/Deaktivieren des Beitrags "Ausführen als" haben und ich bin mir nicht sicher, ob sich die Semantik auf Arbeitssätze erstreckt. Sie müssten also eine Art Wrapper schreiben, um die enthaltenen Projekte zu iterieren und ihre Testtypen zu sammeln. Dies scheint ein interessantes kleines Problem zu sein. Ich könnte heute nach der Schule spielen. Ein anderer (etwas weniger) hacky Weg wäre, ein anderes Projekt mit Projektabhängigkeiten für alle Ihre Zielprojekte zu erstellen, dann verknüpfte Ressourcen zu verwenden, um alle Testtypen in das neue Projekt zu bringen (ich habe vorher eine answer gepostet) beschreibt, wie Quellen projektübergreifend verknüpft werden. Natürlich, wenn Sie dies tun, müssen Sie auch die Abhängigkeiten des Testprojekts verwalten.

Wenn Sie für jedes Projekt eine TestSuite erstellen und eine weitere TestSuite, die auf alle Projekte verweist, müssen Sie prüfen, ob alle Tests fehleranfällig sind.

Wenn Sie keine Lust haben, mit Plugins oder Linked-Resources herumzuspielen, sollten Sie Am besser mit Ant arbeiten.

3

Sie könnten ein separates Projekt definieren, das von den anderen Projekten abhängt und eine Suite enthält, die auf die einzelnen Tests oder Suites der verschiedenen Projekte verweist. Etwas wie folgt aus:

@RunWith(Suite.class) 
@Suite.SuiteClasses({ FirstProjectSuite.class, SecondProjectSuite.class}) 
public class AllSuites { } 
8

Es ist ziemlich einfach, JUnit-Tests über mehrere Projekte hinweg in Eclipse durchzuführen. Schauen Sie sich Classpath Suite an. Es ist nicht mit dem Standard-JUnit-Runner, aber Sie haben nicht erwähnt, woher diese Anforderung stammt, also bin ich mir nicht sicher, ob Sie davon betroffen sind.

die Nutzungsinformationen ist auf der Seite Alle, aber zusammenfassen:

  1. ein Eclipse-Projekt Erstellen Sie alle abhängig von den Projekten, die Sie testen möchten.
  2. Schreiben Sie einen einfachen Test-Suite mit allem:

    @RunWith(ClasspathSuite.class) 
    public class MySuite {} 
    
Verwandte Themen