Pagsubok sa Maven

Ang isa pang mahalagang punto sa gawain ng Maven ay ang yugto ng pagsubok. Ipapatupad ito kung magpapatakbo ka ng test , package , verify o anumang iba pang yugto na susunod sa kanila.

Bilang default, tatakbo si Maven sa lahat ng pagsubok na nasa src/test/java/ folder . Upang makilala ang mga pagsubok na tatakbo mula sa iba pang mga java file, isang pagpapangalan ng convention ay pinagtibay. Ang mga pagsubok ay mga klase ng java na ang mga pangalan ay nagsisimula sa "Test" at nagtatapos sa "Test" o "TestCase" .

Pangkalahatang pattern ng mga pangalan ng pagsubok:

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

Ang mga pagsubok na ito ay dapat na nakasulat batay sa Junit o TestNG test framework. Ang mga ito ay napaka-cool na mga balangkas, tiyak na pag-uusapan natin ang mga ito sa ibang pagkakataon.

Ang mga resulta ng pagsubok sa anyo ng mga ulat sa .txt at .xml na mga format ay naka-save sa direktoryo ng ${basedir}/target/surefire-reports.

Test setup

Kadalasan mayroong maraming mga pagpipilian para sa pagpapatakbo ng mga pagsubok, kaya ang mga developer ng Maven ay gumawa ng isang espesyal na plugin, sa mga parameter kung saan maaari mong itakda ang lahat ng detalyadong impormasyon sa pagsubok. Ang plugin ay tinatawag na Maven Surefire Plugin at available sa .

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

Sa halimbawa, sinabi namin sa plugin na kailangan nitong magpatakbo ng isang klase ng pagsubok, Sample.java.

Paano mabilis na maalis ang mga sirang pagsubok

Upang patakbuhin ang proyekto para sa pagsubok, kailangan mong patakbuhin ang mvn test command. Ngunit mas madalas mayroong pangangailangan na ibukod ang ilang mga pagsubok mula sa pagsubok. Halimbawa, maaaring sira ang mga ito, masyadong mahaba sa pagtakbo, o sa anumang dahilan.

Una, maaari mo lang sabihin kay Maven na laktawan ang mga pagsubok kapag ginagawa ang yugto ng pagbuo. Halimbawa:

mvn clean package -Dmaven.test.skip=true

Pangalawa, sa pagsasaayos ng plugin, maaari mong hindi paganahin ang pagpapatupad ng mga pagsubok:


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

At pangatlo, maaaring ibukod ang mga pagsubok gamit ang tag na <exclude> . Halimbawa:


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