Frage

Um etwas von einem riesigen Chaos aufzuräumen, habe ich den Code meiner Tests löschen alle in einem gewöhnlichen Java-Projekt (alle in src / main / java), und dann erklärte, dass als <scope>test</scope> Abhängigkeit in einem anderen Projekt, und die Tests erwartet auszuführen.

Schön sei es. todsicheres will nur die Tests ausführen, dass es in den Quellen zu sehen.

kann ich eine leider offensichtliche Lösung hier sehen Einbeziehung der Build-Helfer-Plugin und das Hinzufügen der Tests in den Test Kompilierungsumgebung als Quellverzeichnis, aber ich hatte gehofft, es zu vermeiden.

Falls sich jemand wundert, ist der Grund für all dies ist, dass die POM-Konfiguration für die Verwendung des Failsafe-Plugin einige Integrationstests so komplex, bekam zu laufen, dass ich wollte das Kompilieren aufzuspalten aus den Testklassen aus dem Lauf des Tests.

War es hilfreich?

Lösung

Dies ist nun möglich, mit Maven todsicherem v2.15. Fügen Sie einfach die folgende Art von Konfiguration in dem todsicheren Plugin:

<build>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.15</version>
    <configuration>
      <dependenciesToScan>
        <dependency>com.group.id:my-artifact</dependency>
        <dependency>com.group.id:my-other-artifact</dependency>
      </dependenciesToScan>
      ...
    </configuration>
    ...
  </plugin>
  ...
</build>

Sie sollten auch die tatsächlichen Abhängigkeiten in den Abhängigkeiten Abschnitt deklarieren:

<dependencies>
  <dependency>
    <groupId>com.group.id</groupId>
    <artifactId>my-artifact</artifactId>
    <type>test-jar</type>
    <version>1.1</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>com.group.id</groupId>
    <artifactId>my-other-artifact</artifactId>
    <type>test-jar</type>
    <version>1.1</version>
    <scope>test</scope>
  </dependency>
</dependencies>

Andere Tipps

  

Schön sei es. todsicheres will nur die Tests ausführen, dass es in den Quellen zu sehen.

Dies ist derzeit nicht möglich, aus der Box, todsicheren sieht nur bei Klassen in target/test-classes:

Dies ist tatsächlich angemeldet als SURE-569 - Es sollte ein Weg sein, Unit-Tests laufen aus eine Abhängigkeit jar .

  

kann ich eine leider offensichtliche Lösung hier sehen Einbeziehung der Build-Helfer-Plugin und das Hinzufügen der Tests in den Test Kompilierungsumgebung als Quellverzeichnis, aber ich hatte gehofft, es zu vermeiden.

Die aktuelle Problemumgehung ist dependency:unpack zu verwenden, um das Glas in target/test-classes vor der test Phase zu entpacken.

Sie können nicht tun, es umgekehrt?

Ich meine den Code setzt der src / test / java, abhängig von Ihrem Hauptmodul und die Tests im Testmodul laufen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top