Testare în Maven

Un alt punct important în munca lui Maven este faza de testare. Acesta va fi executat dacă rulați test , package , verify sau orice altă fază care urmează după ele.

În mod implicit, Maven va rula toate testele care se află în folderul src/test/java/ . Pentru a distinge testele care urmează să fie rulate de alte fișiere java, a fost adoptată o convenție de denumire. Testele sunt clase java ale căror nume încep cu „Test” și se termină cu „Test” sau „TestCase” .

Modelul general al numelor de test:

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

Aceste teste trebuie scrise pe baza cadrului de testare Junit sau TestNG. Acestea sunt cadre foarte tari, cu siguranță vom vorbi despre ele puțin mai târziu.

Rezultatele testelor sub formă de rapoarte în formatele .txt și .xml sunt salvate în directorul ${basedir}/target/surefire-reports.

Test de configurare

De obicei există o mulțime de opțiuni pentru rularea testelor, așa că dezvoltatorii Maven au realizat un plugin special, în parametrii pentru care puteți seta toate informațiile detaliate despre testare. Pluginul se numește Maven Surefire Plugin și este disponibil la .

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

În exemplu, i-am spus pluginului că trebuie să ruleze o singură clasă de testare, Sample.java.

Cum să eliminați rapid testele rupte

Pentru a rula proiectul pentru testare, trebuie să rulați comanda mvn test. Dar, mai des, este necesar să se excludă unele teste de la testare. De exemplu, acestea pot fi rupte, pot dura prea mult timp pentru a rula sau din orice alt motiv.

În primul rând, îi poți spune pur și simplu lui Maven să sară peste teste atunci când face faza de construire. Exemplu:

mvn clean package -Dmaven.test.skip=true

În al doilea rând, în configurația pluginului, puteți dezactiva execuția testelor:


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

Și în al treilea rând, testele pot fi excluse folosind eticheta <exclude> . Exemplu:


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