SpringBootTest enable/disable webEnvironment based

2019-07-23 16:04发布

I am using Cucumber with SpringBootTest.

The following class is used to configure SpringBootTest

@ContextConfiguration(classes = Application.class, loader = SpringBootContextLoader.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public abstract class StepDefinition {
    @LocalServerPort
    private int port;
    @Autowired
    private TestRestTemplate restTemplate;
}

All step definitions extends this class

public class MyStepdefs extends StepDefinition { ...}

I need to run the tests in two different environments, environment A and B. In environment A, i want SpringBootTest to start up the server on a random port and then run the test, that is why i am setting webEnvironment attribute. However, in environment B, i want to run the same test without starting the server (i will be calling the deployed server in the testing environment directly).

Is there a way to enable/disabled webEnvironment attribute based on an input, for example using ActiveProfile, environment property or anything that i can pass to the test.

Any suggestion how i can achieve this.

0条回答
登录 后发表回答