@khmarbaise ma rację z jego zalecenia (więc +1 do tego), ale chcę, aby odpowiedzieć na to pytanie bez spekulacje na temat powodów, dla których źródłem badanie znajdujących się gdzieś indziej.
Jeśli twoje testy znajdują się w innym katalogu niż standardowy katalog src/test/java
, najprostszym rozwiązaniem jest zmiana domyślnej wartości parametru konfiguracyjnego testSourceDirectory
zdefiniowanego w Super POM.
np. dla src/foobar/java
używać
<build>
<testSourceDirectory>src/foobar/java</testSourceDirectory>
</build>
następnie można po prostu uruchomić mvn test
wykonać testy.
Bardziej skomplikowane rozwiązanie ...
Jeśli nie chcesz, aby zmienić konfigurację pom.xml można specifiy parametr testSourceDirectory w linii poleceń jak poniżej:
mvn -DtestSourceDirectory=src/foobar/java clean test
Ale upewnij się, że twoje źródła zostały skompilowane.W przeciwnym razie nie zostaną znalezione i wykonane. W powyższym przykładzie źródła testowe nie są umieszczone w miejscu, które zostanie skompilowany domyślnie, więc mimo wszystko trzeba zmienić pom i dodać katalog do listy źródeł testowych za pomocą buildhelper wtyczki:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>add-test-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/foobar/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
Jeśli nie chcesz zmieniać konfiguracji wartości domyślnej w pom i nie chcesz przekazywać nowego katalogu w linii poleceń, musisz skonfigurować ścieżkę w wtyczce maven-buildhelper i wtyczce maven-surefire w twoim pom .xml tak:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>add-test-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/foobar/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14.1</version>
<configuration>
<testSourceDirectory>src/foobar/java</testSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
teraz znowu proste wykorzystanie mvn test
będzie exec wykonaj test w nietypowej lokalizacji.
Zastanawiam się, jakie rozwiązanie zadziałało. – FrVaBe