Junit 从第一个可用港口开始的码头

Junit 从第一个可用港口开始的码头,junit,jetty,Junit,Jetty,我有几个junit测试需要Jetty。每个测试都使用Jetty的一个实例。但是,可以临时添加测试,但是如果两个Jetty服务器使用相同的端口,则测试将失败,因为该端口已在使用中。错误是: [ERROR] Failed to execute goal org.mortbay.jetty:maven-jetty-plugin:6.1.26:run (start-jetty) on project petproject1: Failure: Address already in use -> [

我有几个junit测试需要Jetty。每个测试都使用Jetty的一个实例。但是,可以临时添加测试,但是如果两个Jetty服务器使用相同的端口,则测试将失败,因为该端口已在使用中。错误是:

[ERROR] Failed to execute goal org.mortbay.jetty:maven-jetty-plugin:6.1.26:run (start-jetty) on project petproject1: Failure: Address already in use -> [Help 1]
因此,我正在寻找一种方法,从端口X(8080或更多?)开始在第一个可用端口上启动Jetty,而不是在每个测试中都有一个包含所有启动端口的大表。

a)您可以对测试进行超类化,并在该超类中实现某种端口计数器,它在每个@Before中递增(我想,它负责管理jettyy的设置)
b) 您可以使用端口0(这是一个随机空闲端口)启动jetty,然后在每个测试中向jetty实例询问端口号(如果您在测试中有权访问它,如果没有:使用@Rule)