# Buckminster + plugin tests



## code404 (12. Mai 2011)

Hallo zusammen,

ich versuch mich gerade durch den Buckminster Dschungel + Hudson zu kämpfen.
Dank Headless Eclipse RCP builds with Buckminster and Hudson bin ich aber schon soweit, dass das Produkt einwandfrei gebaut wird.
Jetzt würde ich aber gerne auch meine JUNIT Tests ausführen lassen.
Bis jetzt habe ich für jedes Plugin "XY" ein ein "XY.tests" Plugin angelegt und darin die TestSuiten implementiert.
Diese Test-Plugins sind aber nicht in meinem XY Feature enthalten.

Wie genau stelle ich es jetzt an, dass XY.tests mit gebaut wird und ich dann das "junit -l ..." Kommando ausführen kann?

Vielen Dank
code404


----------



## Wildcard (12. Mai 2011)

Am einfachsten ist du machst ein Feature das alle Test Fragmente/Bundles enthält und erstellst ein zweites CQuery das dieses Feature anfordert.
Bei mir sieht ein typischer Build normalerweise so aus (Pseudocode):
setTP
resolve product.cquery
resolve test-feature.cquery
build
junit
perform product-feature#site.p2

Du kannst auch alles in einem Query erledigen wenn du eine releng Komponente anlegst (Typ eclipse.feature, oder buckminster). Dort definierst du dann eine Abhängigkeit auf dein product feature und die test bundles.


----------



## code404 (13. Mai 2011)

Vielen Dank für die schnell Antwort.
Da habe ich gleich noch mal eine Frage zur allgemeinen Projekt-Struktur mit Buckminster.
Ich habe mein Produkt XY was ich einmal als RCP (also als lauffähiges Programm) und einmal als Feature (zum einbinden in die Eclipse IDE) anbieten möchte.
Müsste ich dann folgende Plugins anlegen?

org.product.xy (das eigentlich Plugin)
org.product.xy.rcp (RCP Client)
org.product.xy.feature (Feature zum einbinden in die Eclipse IDE)
org.product.xy.site (p2 site und Buckminster zeugs)
org.product.xy.tests (Tests für das Produkt)
org.product.xy.tests.feature (Test Feature für Buckminster)

Besten Dank


----------



## Wildcard (13. Mai 2011)

Minimal reicht plugin + feature. Das Product kann im feature liegen, das site feature ist nicht unbedingt nötig, wird nur oft zur Gruppierung mehrere Features verwendet. Die Tests kannst du per cspex im plugin als zusätzliche Dependency referenzieren (da es nicht im feature/product referenziert wird, taucht das test bundle in der Auslieferung nicht auf).


----------

