Domanda

Al fine di ripulire una sorta di pasticcio gigante, ho deciso di mettere il codice dei miei test tutti in un unico progetto java ordinaria (tutti in src / main / java), e poi dichiarare che come dipendenza <scope>test</scope> in un altro del progetto, e si aspettano i test da eseguire.

Niente da fare. infallibile vuole correre solo i test che si può vedere nelle fonti.

posso vedere una soluzione tristemente evidente qui che coinvolge il build-helper-plugin e aggiungendo i test nell'ambiente di compilazione di test come una directory di origine, ma speravo di evitarlo.

Nel caso in cui qualcuno si sta chiedendo, la ragione di tutto questo è che la configurazione POM per l'uso del failsafe plugin per eseguire alcuni test di integrazione ottenuto così complesso che ho voluto dividere la compilazione delle classi di test dalla esecuzione del test.

È stato utile?

Soluzione

Questo è ora possibile con Maven Surefire v2.15. Basta aggiungere il seguente tipo di configurazione al infallibile 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>

Si dovrebbe anche dichiarare le dipendenze effettive nella sezione dipendenze:

<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>

Altri suggerimenti

  

Niente da fare. infallibile vuole correre solo i test che si può vedere nelle fonti.

Questo momento non è possibile, fuori dalla scatola, infallibile lo guarda classi target/test-classes:

Questa è effettivamente registrato come SUREFIRE-569 - Ci dovrebbe essere un modo per eseguire unit test da un barattolo di dipendenza .

  

posso vedere una soluzione tristemente evidente qui che coinvolge il build-helper-plugin e aggiungendo i test nell'ambiente di compilazione di test come una directory di origine, ma speravo di evitarlo.

La soluzione corrente è utilizzare dependency:unpack per decomprimere il vaso in target/test-classes prima della fase test.

Non puoi farlo il contrario?

intendo mettere il codice della src / test / java, dipende dal vostro modulo principale, ed eseguire le prove in vostro modulo di test?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top