我有两个 spring boot 应用程序,一个在 src/test 中,另一个在 src/main 中。他们有自己独立的 app.properties 和独立的端口。
我想进行集成测试,在它运行之前,我希望它在 maven 中运行集成测试时启动这两个服务器。到目前为止,使用前后 maven 集成测试插件没有帮助,我似乎无法在 Spring Boot 中以编程方式启动它们。
此外,我已经意识到即使我使用 ActiveProfile 和 spring boot 测试指定集成测试也不会连接到我的主应用程序,它总是会启动我的测试应用程序。
我的主要应用程序:
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
@SpringBootApplication
public class App
{
public static void main( String[] args )
{
new SpringApplicationBuilder(App.class)
.build()
.run(args);
}
}
我的测试应用程序:
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
@SpringBootApplication
public class MockServerApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
new SpringApplicationBuilder(MockServerApp.class)
.build()
.run(args);
}
}
我的集成测试
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.PropertySource;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import com.nulogix.billing.App;
import com.nulogix.billing.mockserver.MockServerApp;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT,classes = {App.class})
public class BillingMediatorIT {
@Test
public void testOne(){
}
}
我的 App.class 连接到端口 28433,我的 MockServerApp.class 连接到端口 9119。
由于某种原因,我的测试仍然连接到 MockServerApp.class,因为它使用端口 9119。
如何解决此问题并使其启动两个应用程序预集成测试阶段。
森栏
相关分类