Java / Maven – Como pegar os activeProfiles em runtime nos testes? (Get list of activated profile name during run time in maven java project)

Para definir uma váriavel de ambiente em runtime no Maven, basta adicionarmos no configuration/systemPropertyVariables o valor desejado, como estamos falando especificamente do profile ativo, basta criarmos um nó que será o nome da váriavel e o valor, que no caso foi definido como o primeiro profile ativo:

Exemplo de profiles

<profiles>
    <profile>
        <id>profile-1</id>
        ...
    </profile>
    <profile>
        <id>profile-2</id>
        ...
    </profile>
</profiles>     

O mapeamento é feito no plugin surefire *(ou se no failsafe). Definição da ENV:


<build>
    <plugins>
        ...
        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
           <configuration>
               <systemPropertyVariables>
                   <profileId>${project.activeProfiles[0].id}</profileId>
               </systemPropertyVariables>
           </configuration>
        </plugin>
        ...
    </plugins>
</build>  

Para obter o valor no código basta usarmos:

System.getProperty("profileId")

Exemplo de uso:

  • https://github.com/helpdeveloper/java-modular-architecture/blob/main/acceptance-test/pom.xml#L149
  • https://github.com/helpdeveloper/java-modular-architecture/blob/main/acceptance-test/src/test/java/br/com/helpdev/atdd/DefaultContainerStarterTest.java#L71

Fonte: https://stackoverflow.com/a/34551514

Help DEV – Analista desenvolvedor Java / Android https://helpdev.com.br/zarelli

Java / Maven – Como pegar os activeProfiles em runtime nos testes? (Get list of activated profile name during run time in maven java project)

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Rolar para o topo