我有几个需要Jetty的junit测试。每个测试都使用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的方法,而不是每个测试都有一个包含所有启动端口的大表。
答案 0 :(得分:0)
a)你可以对你的测试进行超类化,并在那个超类中实现某种类型的端口计数器,每个@Before都增加一次(我想,它会管理一个jettyy的设置)
b)您可以使用端口0(这是一个随机空闲端口)启动jetty,然后在每个测试中询问jetty实例的端口号(如果您在测试中可以访问它,如果没有:使用@Rule)