如何用黄瓜激活弹簧靴配置文件黄瓜、弹簧、配置文件、如何用

2023-09-08 00:06:31 作者:不如不见

I am looking for a nice way to active a spring profile for my cucumber tests. The cucumber tests need to use a stubbed version of a service which is marked with:

@Profile("test")
@Component
class FooServiceStub extends FooService {...}

The regular service looks like this:

@Profile("prod")
@Component
class FooService {...}    
win10系统更新某些设置由你的组织来管理

My requirements:

Run cucumber tests with mvn: $ mvn test Run cucumber tests in IDE Run cucumber tests on build server No need to use the -Dspring.profiles.active=... argument

Sources I've found but don't solve my issue:

http://www.baeldung.com/cucumber-spring-integration (using @ContextConfiguration loader with SpringApplicationContextLoader.class which is not present in the latest version of Spring Boot, 1.5.2.RELEASE at the time of writing.) programatically set Spring profile in Cucumber (messing with system property)

解决方案

In more recent cucumber version (6.11.0) you need a class with spring configuration and you have to annotate that one, not the steps definition

@ActiveProfiles("test")
@CucumberContextConfiguration
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class CucumberSpringConfiguration {
}