Maven: Verwenden Sie spezifische Test-Klassen von Projekt A in Projekt B

8

Ich habe die Projekte A und B, wo B A erfordert. Innerhalb der Projekt-AI gibt es eine Utility-UC, die nur für JUnit-Tests verfügbar sein sollte und daher in src/test/java von Projekt A liegt. Solange ich schreibe Tests in AI haben Zugriff auf UC. Wenn ich jedoch Maven ausführe und möchte, dass es die Tests in B ausführt, erhalte ich Compilerfehler, da UC in B nicht zugänglich ist.

Offensichtlich enthält Eclipse alle Klassen in allen Quellordnern, wenn es etwas kompiliert (d. h. es kennt UC, wenn ich Tests in B schreibe), während Maven alle Testklassen in der endgültigen Version von A entfernt.

Meine Frage ist folgende: Was muss ich tun, um UC in B verfügbar zu machen, wenn ich seine Tests mit Maven durchführe?

Bitte verstehen Sie, dass ich neu bei Maven bin und ich denke, dass ähnliche Fragen gestellt wurden. Allerdings kann ich das, was dort steht, nicht in mein Problem umwandeln und beheben.

Ich hoffe, es ist klar, was ich zu tun versuche ...

    
sjngm 25.02.2011, 11:24
quelle

3 Antworten

7

Nachdem ich ein wenig mehr gesucht habe, habe ich endlich eine Lösung gefunden:

Ссылка 1

Ich habe dieses Muster gelegentlich bei anderen Fragen gesehen, also habe ich es einfach nicht so verstanden ... Oh, nun ja. * eyeroll *

1 Dieser ursprüngliche Link funktioniert nicht mehr. Ich fand es wieder auf archive.org (behalte nichts gegen das umständliche Layout).

    
sjngm 25.02.2011, 12:22
quelle
2

Die maven-jar-plugin Seite - Ссылка - nennt zwei Wege. Der einfache Ansatz besteht darin, ein Test-Jar-Artefakt zu erstellen und darauf zu verweisen. (Schnipsel eklatant von der offiziellen Seite kopiert)

%Vor%

und dann verweisen Sie mit dem Test-Jar-Typ und Test-Bereich in den Projekten, die es brauchen:

%Vor%

Wenn Sie dies viel tun müssen, sollten Sie in Betracht ziehen, Ihren Testcode in separate Projekte zu verschieben.

    
quelle
0

Ich habe Testgläser immer peinlich gefunden. Sie sind etwas eigenartig, weil sie nur einmal verwendet werden, wenn sie frisch im Repository bereitgestellt werden. Ansonsten sehen andere Projekte die Änderungen nicht. Aus diesem Grund empfehle ich, nur normale Projekte zu erstellen, in die Sie Ihre Testhelfer einfügen und dann mithilfe einer Testbereichsabhängigkeit auf sie verweisen können.

    
sorencito 14.08.2013 09:25
quelle