2015-02-25 6 views
5

Ich habe nicht viel mit Maven gemacht, aber ich verstehe die Grundlagen. Wir verwenden Tycho, um RCP-Plugins zu erstellen, und ich frage mich, warum Tycho die integration-test-Phase verwendet, um die Tests in einem Paket auszuführen.Kann Tycho-todsichere Version in der Testphase konfiguriert werden?

Ist es möglich, einige Arten von Tests an die test Phase von Maven for Tycho anstelle der integration-test Phase zu binden?

Wenn ja, wie?

+0

Es sollte möglich sein, können Sie die relevanten Teile Ihrer pom.xml zeigen? – Behe

+0

@Behe: Für Tycho-Benutzer ist es ziemlich offensichtlich, dass diese Frage [Tychos 'eclipse-test-plugin'-Verpackungstyp] ist (http://wiki.eclipse.org/Tycho/Packaging_Types#eclipse-test-plugin) . – oberlies

Antwort

6

Tycho führt Tests in einem OSGi-Container aus. Dazu müssen die kompilierten Klassen bereits als OSGi-Bundles gepackt sein. Das Packen findet nur in der Phase package statt, daher müssen die Tests später ausgeführt werden. Daher führt tycho-surefire-plugin standardmäßig Tests in der integration-test Phase durch.

Wenn Sie Ihre Tests als "JUnit Test" in Eclipse ausführen können (statt als "JUnit Plug-in Test"), benötigen Ihr Code und keine Ihrer Abhängigkeiten einen OSGi-Container. In diesem Fall können Sie möglicherweise auch die Tests mit der ausführen. Dieses Plugin läuft standardmäßig in der test Phase. Ich habe this blog gefunden, die die Konfiguration beschreibt, die dazu erforderlich ist.

+0

Danke, das macht Sinn. Dies hinterlässt jedoch eine andere Frage. Spielt es eine Rolle, ob Sie als Unittests Plugin Unittests (durch das lasse ich meine tycho sie ausführen) ausführen oder als reguläre Unittests (sie in der Testphase ohne OSGi Verpackung ausgeführt werden lassen)? Wie in. Kann ich laufe Unittests zu Testcode in einem bestimmten Plugin, in der Testphase, ohne dass irgendwelche Probleme verursacht (in Bezug auf dem nicht für bestimmte Funktionalität oder anderweitig) verwendet? Ich werde dies als die Antwort markieren. Allerdings würde ich gerne wissen, ob dies ohne Nebenwirkungen möglich ist. – Byebye

+1

Das hängt wirklich von Ihrem Code ab - aber Sie können es einfach ausprobieren. Wenn Ihre Tests noch bestanden werden, benötigen Sie OSGi wahrscheinlich nicht. – oberlies