Ändern Sie in der Eclipse-Startkonfiguration das Standardprogramm "Ausführen"

8

hin und wieder starte ich JUnit-Tests aus Eclipse mit

  

Ausführen als & gt; JUnit Plug-in-Test

Standardmäßig geht Eclipse davon aus, dass Sie etwas ausführen, das eine Workbench erfordert und wählen Sie im Abschnitt "Main" der Startkonfiguration

  

LaunchConfig & gt; Haupt & gt; Programm zum Ausführen & gt; Führen Sie eine Anwendung aus & gt;    org.eclipse.ui.ide.workbench

Ich kann verstehen, warum dies der Standard ist, aber für mich (und für alle in unserem Team) ist dies nie der Fall. Wir müssen unsere JUnit Plug-in Tests immer als

ausführen
  

LaunchConfig & gt; Haupt & gt; Programm zum Ausführen & gt; Führen Sie eine Anwendung aus & gt;    [Keine Anwendung] Headless-Modus

Wie ändere ich dieses Standardverhalten? Ich verwende derzeit Eclipse 4.4.

    
pimpf0r 04.06.2015, 11:36
quelle

4 Antworten

6

Eine benutzerdefinierte LaunchConfiguration -Extension scheint ein praktikabler Lösungsansatz zu sein. Was ich getan habe, war eine neue, benutzerdefinierte LaunchConfiguration -Erweiterung zu erstellen, die zu 99.999% auf der JUnitLaunchConfiguration basiert. Ich musste nur eine benutzerdefinierte

hinzufügen %Vor%

, wodurch das

überschrieben wird %Vor%

Methode, um die Anwendungsparameter nach unseren Bedürfnissen anzupassen.

%Vor%

Um das LaunchConfig-Dialogfeld mit dem Standardparameter initialisieren zu können, musste ich:

  1. Hinzufügen einer benutzerdefinierten BlaBlaPluginJUnitMainTab erweitert PluginJUnitMainTab
  2. Erstellen Sie eine benutzerdefinierte JUnitProgramBlock-Implementierung ( BlaBlaJUnitProgramBlock )
  3. Erstellen einer Instanz von BlaBlaJUnitProgramBlock in der Methode BlaBlaJUnitPluginTestTabGroup.BlaBlaPluginJUnitMainTab.createProgramBlock()
  4. Überschreibe setDefaults -Methode (nicht sicher, ob es wirklich notwendig ist) in BlaBlaJUnitProgramBlock
  5. Überschreiben Sie die initializeForm-Methode in BlaBlaJUnitProgramBlock und passen Sie den Parameter auch dort an.

Führt zu folgendem Ergebnis:

    
pimpf0r 06.08.2015, 11:01
quelle
6

Diese Antwort ist ein Beinahe-Fehler:

Versuchen Sie Folgendes:

  1. Erstellen und konfigurieren Sie manuell eine "gute" Startkonfiguration.

Wenn Sie das nächste Mal einen Test starten möchten, der noch nicht über eine gute Startkonfiguration verfügt:

  1. Wählen Sie die Datei und rufen Sie Run As > Run Configurations ... auf (d. h. wählen Sie noch nicht JUnit Plug-in Test !)
  2. In diesem Dialog wählen Sie eine gute Startkonfiguration derselben Art und ...
  3. Klicken Sie dann auf New Launch Configuration (obere linke Ecke)

Nun sollte die neu erstellte Konfiguration die konfigurierten Werte von der guten Konfiguration "erben".

Die Wahrheit ist:

  • Sie können eine vorhandene Startkonfiguration duplizieren (damit Sie den zu startenden Test manuell auswählen können)
  • Das Debug-Team hatte einmal Pläne, Konfigurationsvorlagen zum Starten zu unterstützen
Stephan Herrmann 11.08.2015 20:29
quelle
3

Wenn Sie nur nach der Bequemlichkeit suchen, speichert eclipse die letzte Ausführung. Nachdem Sie "run as" verwendet und "ur run config" gespeichert haben, verwenden Sie einfach die Schaltfläche "Ausführen als" in der Symbolleiste. Außerdem kommt diese Eclipse mit Geschmack für Tester, Sie können das überprüfen. Auch wenn Sie über Unit-Tests sprechen, sehen Sie, ob Sie Ameisen Build verwenden können oder noch besser konvertieren zu Maven-basierten Projekt. Maven hat Unterstützung für das Testen integriert.

    
saurabh 10.08.2015 09:52
quelle
2

Es scheint eine einfache und effektive Heuristik zu geben, die entscheidet, ob ein JUnit Plug-in Test kopflos oder mit einer Anwendung ausgeführt werden soll:

Stellen Sie sicher, dass das Plug-in, das Ihre Tests enthält, keine Abhängigkeiten von irgendetwas org.eclipse.ui hat.

  • Ohne diese Abhängigkeit ist [No Application - Headless Mode] standardmäßig für neu erstellte Startkonfigurationen ausgewählt.
  • Bei dieser Abhängigkeit ist der Standardwert Run a product , mit s.t. wie org.eclipse.platform.ide vorausgewählt.
Stephan Herrmann 12.08.2015 22:58
quelle