自动选择JerseyTest中的第一个空闲端口

时间:2019-01-31 14:28:19

标签: java jersey jersey-test-framework

我正在使用jersey-test-framework-grizzly-1.19.4测试Web服务。我偶尔会看到由于com.sun.jersey.test.framework.spi.container.TestContainerException: java.net.BindException: No free port within range异常而导致测试失败。从源代码中,我看到Jersey始终使用端口9998来启动服务器套接字。当然,该端口可能被并行运行的其他测试占用。是否可以告诉泽西岛使用任意范围内的可用端口?

1 个答案:

答案 0 :(得分:0)

您可以通过设置from google.oauth2 import service_account import googleapiclient.discovery SCOPES = ['https://www.googleapis.com/auth/cloud-platform'] SERVICE_ACCOUNT_FILE = 'credentials/credentials.json' credentials = service_account.Credentials.from_service_account_file( SERVICE_ACCOUNT_FILE, scopes=SCOPES) cloudfunction = googleapiclient.discovery.build('cloudfunctions', 'v1', credentials=credentials) path ="projects/your-project-name/locations/cloud-function-location/functions/name-of-cloud-function" data = {"data": "A String"} a=cloudfunction.projects().locations().functions().call(name=path, body=data).execute() 属性来指定自定义端口,该属性方便地声明为TestProperties.CONTAINER_PORT。该属性由initialisation上的jersey.config.test.container.port读取。

自然地,必须在初始化JerseyTest之前设置属性。