Testowanie w Mavenie

Kolejnym ważnym punktem w pracy Mavena jest faza testowania. Zostanie wykonany, jeśli uruchomisz test , package , weryfikację lub jakąkolwiek inną fazę, która nastąpi po nich.

Domyślnie Maven uruchomi wszystkie testy znajdujące się w folderze src/test/java/ . Aby odróżnić uruchamiane testy od innych plików java, przyjęto konwencję nazewnictwa. Testy to klasy Java, których nazwy zaczynają się od „Test” i kończą na „Test” lub „TestCase” .

Ogólny wzór nazw testów:

  • **/Test*.java
  • **/*Test.java
  • **/*TestCase.java

Testy te muszą być napisane w oparciu o framework testowy Junit lub TestNG. To bardzo fajne frameworki, na pewno porozmawiamy o nich trochę później.

Wyniki badań w postaci raportów w formatach .txt i .xml zapisywane są w katalogu ${basedir}/target/surefire-reports.

Konfiguracja testowa

Opcji uruchamiania testów jest zazwyczaj bardzo dużo, dlatego programiści Maven stworzyli specjalną wtyczkę, w parametrach której można ustawić wszystkie szczegółowe informacje dotyczące testowania. Wtyczka nazywa się Maven Surefire Plugin i jest dostępna pod adresem .

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
    	<version>2.12.4</version>
    	<configuration>
        	<includes>
                <include>Sample.java</include>
        	</includes>
    	</configuration>
	</plugin>
</plugins>

W przykładzie powiedzieliśmy wtyczce, że musi uruchomić pojedynczą klasę testową, Sample.java.

Jak szybko wyeliminować zepsute testy

Aby uruchomić projekt do testowania, musisz uruchomić polecenie mvn test. Ale częściej istnieje potrzeba wyłączenia niektórych testów z testowania. Na przykład mogą być zepsute, działać zbyt długo lub z jakiegokolwiek innego powodu.

Po pierwsze, możesz po prostu powiedzieć Mavenowi, aby pominął testy podczas fazy kompilacji. Przykład:

mvn clean package -Dmaven.test.skip=true

Po drugie, w konfiguracji wtyczki możesz wyłączyć wykonywanie testów:


<configuration>
    <skipTests>true</skipTests>
</configuration>

Po trzecie, testy można wykluczyć za pomocą znacznika <exclude> . Przykład:


<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
    	<version>2.12.4</version>
    	<configuration>
        	<excludes>
           	<exclude>**/TestFirst.java</exclude>
	           <exclude>**/TestSecond.java</exclude>
    	</excludes>
    	</configuration>
    </plugin>
</plugins>