Gradle中获取可用端口

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载自夜明的孤行灯

本文链接地址: https://www.huangyunkun.com/2015/04/02/gradle-available-port/

在项目需要用到集成测试,即打包整个项目,通过容器启动,然后直接测试。

测试的环境不一定是稳定的,所以容器对外的端口最好是保证可用的。

以一个Spring Boot的项目为例子,使用gretty插件来启动应用。

gretty {
springBoot =false
port =7777
integrationTestTask = 'e2eTest'
}

如果端口7777被占用,那么测试就会失败。

稍微修改一下,使用AvailablePortFinder来寻找可用端口。

AvailablePortFinderavailablePortFinder = AvailablePortFinder.createPrivate()
IntegerhttpPort = availablePortFinder.nextAvailable

gretty {
springBoot =false
port = httpPort
integrationTestTask = 'e2eTest'
}

这样项目启动时的端口就可以保证可用性了。

在测试中的使用也很简单,因为gretty对于集成测试的支持很好,相关属性都会写入系统属性以供测试使用。

在测试中可以这样使用

privatefinalstatic String baseUrl ="http://localhost:8080/budget";

static {
RestAssured.defaultParser = Parser.JSON;
String property = System.getProperty("gretty.httpBaseURI");
if (property !=null) {
RestAssured.baseURI = property;
}else {
RestAssured.baseURI = baseUrl;
}
}

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载自夜明的孤行灯

本文链接地址: https://www.huangyunkun.com/2015/04/02/gradle-available-port/

《Gradle中获取可用端口》有2条评论

回复 匿名 取消回复