Testy integracyjne i ustawienie profilu springowego uruchamiając build

0

Mam w testach integracyjnych klasę bazową, która na górze ustawia profil tak:

@ActiveProfiles("it")

I teraz budując projekt z konsoli chcę przekazać jeszcze jeden profil windows (bo buduję na windowsie, na jenksie wstaje trochę inna konfiguracja):

# docelowo chcę stworzyć profil mavenowy, który mi ustawi profil springowy tj. mvn clean install -Pwindows
mvn clean install -Dspring.profiles.active=windows

Natomiast to nie działa testy dalej są uruchamiane z profilem it.
W jaki sposób mogę to ustawić? Najlepiej jakby te przekazanie z konsoli nie nadpisywało mi tych profili,
które są ustawiane w testach tylko dodawało kolejny.

0

Problem rozwiązany. Okazuje się, że ActiveProfiles ma wyższy priorytet niż ustawiając z konsoli ale można napisać własny resolver:

@ActiveProfiles(
        profiles = "it",
        resolver = BaseTest.TestActiveProfileResolver.class
)
@SpringBootTest(
        webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
        classes = Application.class
)
@Import(IntegrationTestConfiguration.class)
@SuppressWarnings("java:S2187")
public abstract class BaseTest {

  ...

  static class TestActiveProfileResolver implements ActiveProfilesResolver {
    
    private final DefaultActiveProfilesResolver defaultActiveProfilesResolver = new DefaultActiveProfilesResolver();

    @Override
    public String[] resolve(Class<?> testClass) {
        final String springProfileKey = "spring.profiles.active";
        return System.getProperties().containsKey(springProfileKey)
                ? System.getProperty(springProfileKey).split("\\s*,\\s*")
                : defaultActiveProfilesResolver.resolve(testClass);
    }
  }

}

pom.xml

<profiles>
    <profile>
        <id>windows</id>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.2</version>
                    <configuration>
                        <systemPropertyVariables>
                            <spring.profiles.active>it,windows</spring.profiles.active>
                        </systemPropertyVariables>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

1 użytkowników online, w tym zalogowanych: 0, gości: 1