Maven'de test etme

Maven'in çalışmasındaki bir diğer önemli nokta da test aşamasıdır. test , package , valide veya bunlardan sonra gelen herhangi bir aşamayı çalıştırırsanız yürütülecektir .

Varsayılan olarak Maven, src/test/java/ klasöründeki tüm testleri çalıştıracaktır . Çalıştırılacak testleri diğer java dosyalarından ayırt etmek için bir adlandırma kuralı benimsenmiştir. Testler, adları "Test" ile başlayan ve "Test" veya "TestCase" ile biten java sınıflarıdır .

Test adlarının genel modeli:

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

Bu testler, Junit veya TestNG test çerçevesine göre yazılmalıdır . Bunlar çok havalı çerçeveler, kesinlikle biraz sonra onlardan bahsedeceğiz.

.txt ve .xml biçimlerindeki raporlar biçimindeki test sonuçları, ${basedir}/target/surefire-reports dizinine kaydedilir.

Test kurulumu

Testleri çalıştırmak için genellikle birçok seçenek vardır, bu nedenle Maven geliştiricileri, testle ilgili tüm ayrıntılı bilgileri ayarlayabileceğiniz parametrelerde özel bir eklenti yaptılar. Eklentinin adı Maven Surefire Plugin'dir ve adresinde mevcuttur .

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

Örnekte, eklentiye Sample.java adlı tek bir test sınıfı çalıştırması gerektiğini söyledik.

Bozuk testler nasıl hızlı bir şekilde ortadan kaldırılır

Projeyi test amacıyla çalıştırmak için mvn test komutunu çalıştırmanız gerekir. Ancak daha sıklıkla bazı testlerin test dışı bırakılmasına ihtiyaç vardır. Örneğin, bozulabilir, çalışması çok uzun sürebilir veya başka bir nedenle olabilir.

İlk olarak, Maven'e derleme aşamasını gerçekleştirirken testleri atlamasını söyleyebilirsiniz. Örnek:

mvn clean package -Dmaven.test.skip=true

İkincisi, eklenti yapılandırmasında testlerin yürütülmesini devre dışı bırakabilirsiniz:


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

Üçüncü olarak, testler <exclude> etiketi kullanılarak hariç tutulabilir . Örnek:


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