| ||||||||||||||||||||||||||||||||||||||||||
Maven - Execució de les provesJoan Puigcerver Ibáñez Maven - Execució de les proves¶Execució de les proves unitàries¶Maven defineix la tasca Goals en
|
Goal | Plugin | Descripció |
---|---|---|
resources:resources |
maven-resources-plugin |
Copia els recursos de l'aplicació |
compiler:compile |
maven-compiler-plugin |
Compila el codi font |
resources:testResources |
maven-resources-plugin |
Copia els recursos de les proves |
compiler:testCompile |
maven-compiler-plugin |
Compila el codi font de les proves |
surefire:test |
maven-surefire-plugin |
Executa les proves unitàries |
<project>
...
<properties>
<skip.ut>false</skip.ut> <!-- (1)! -->
</properties>
<dependencies>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<!-- JUnit 5 requires Surefire version 2.22.0 or higher -->
<version>3.5.2</version>
<configuration>
<skipTests>${skip.ut}</skipTests>
</configuration>
</plugin>
...
</plugins>
</build>
</project>
- La propietat
skip.ut
permet saltar l'execució de les proves. Per defecte, el valor ésfalse
.
Execució de les proves d'integració¶
Maven defineix la tasca verify
, que compila i realitza diferents comprovacions sobre el projecte,
com executar els tests d'integració.
- La propietat
skip.ut
permet saltar l'execució de les proves unitàries.
Goals en mvn verify
S'executaran tots els goals definits abans de la tasca indicada.
Goal | Plugin | Descripció |
---|---|---|
resources:resources |
maven-resources-plugin |
Copia els recursos de l'aplicació |
compiler:compile |
maven-compiler-plugin |
Compila el codi font |
resources:testResources |
maven-resources-plugin |
Copia els recursos de les proves |
compiler:testCompile |
maven-compiler-plugin |
Compila el codi font de les proves |
surefire:test |
maven-surefire-plugin |
Executa les proves unitàries |
package |
maven-jar-plugin |
Empaqueta l'aplicació |
failsafe:integration-test |
maven-failsafe-plugin |
Executa les proves d'integració |
<project>
...
<dependencies>
...
</dependencies>
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.5.2</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
</project>
Automatització de l'execució de les proves¶
L'execució de les proves pot automatitzar-se mitjançant GitHub Actions a les Pull Request, per comprovar que la incorporació d'una funcionalitat és correcta.
name: Test Java with Maven
on:
push:
branches: [ "main" ]
pull_request:
# Tipus d'events sobre la pull request
types: [ 'opened', 'edited', 'reopened', 'synchronize', 'ready_for_review' ]
branches: [ "main", "development" ]
workflow_dispatch:
jobs:
unit-test:
if: github.event_name == 'push' || github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 22
uses: actions/setup-java@v3
with:
java-version: '22'
distribution: 'temurin'
cache: maven
- name: Run Unit Tests with Maven
run: mvn --batch-mode test -Dcheckstyle.skip=true
integration-test:
needs: unit-test
if: github.event_name == 'push' || github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 22
uses: actions/setup-java@v3
with:
java-version: '22'
distribution: 'temurin'
cache: maven
- name: Run Integration Tests with Maven
run: mvn --batch-mode verify -Dskip.ut=true -Dcheckstyle.skip=true
Requerir execució de les proves en les Pull Request¶
A més, es poden configurar les regles de protecció de les branques (Rulesets) per requerir que les comprovacions siguen satisfactòries per poder incorporar els canvis:
Figura 1. Regles d'execució de les proves