Ich habe Multi-Modul-Projekt, das ein Testmodul speziell für die Durchführung von Integrationstests hat. Ich habe bemerkt, dass sich der Klassenpfad des Tests signifikant ändert, wenn eine einzelne Klasse ausgeführt wird oder das gleiche Paket ausgeführt wird.IntelliJ Test Classpath: Anders beim Ausführen Klasse vs Paket
Von der Inspektion kann ich sehen, dass ein anderes Projektmodul (und seine Abhängigkeiten) dem Klassenpfad hinzugefügt werden, der keine Abhängigkeit des Testmoduls (direkt oder transitiv) ist - es ist eine Datenbank für die Datenbankmigration, auf die man nicht angewiesen ist bei irgendetwas anderem.
Kann jemand rationalisieren, warum sich ein Testklassenpfad ändern würde, wenn eine einzige Klasse vs. alle 3 Klassen in demselben Paket ausgeführt wird?
Hintergrund: IntelliJ 14.1.3 Tests passieren, wenn sie über Maven Lauf
Wie haben Sie konfigurieren Sie die [CLASSPATHs] (https://www.jetbrains.com/help/idea/2016.1/run-debug-configuration-application.html#1) für die 2 läuft? – Morfic
@Morfic Beide verwenden die Standardeinstellung. Wenn ein einzelner Test ausgeführt wird, wird standardmäßig der Klassenpfad des Moduls verwendet. Wenn ein Paket ausgeführt wird, ist die Option ausgegraut und nicht änderbar. – markdsievers
@Morfic Danke für den Doco Link. Das hat mich zum Experimentieren gebracht und ich habe es schließlich gelöst. Es stellt sich also heraus, dass der Standard-Testklassenpfad beim Ausführen von Paket ALLES ist. Ich musste eine Konfiguration erstellen, um den Klassenpfad für ein bestimmtes Modul explizit festzulegen, wenn Tests von einem bestimmten Paket ausgeführt werden. Danke für den Anstoss in die richtige Richtung. Fügen Sie eine Antwort hinzu, um Ihre Punkte zu beanspruchen! – markdsievers