运行多种方法时已使用泽西岛测试地址

2022-09-04 19:47:34

我正在尝试使用从 JerseyTest 继承的类来测试我的 rest 接口。虽然第一个测试方法成功且没有任何问题,但以下测试失败,并且绑定异常地址已在使用中。我是否需要在测试之间释放某种资源才能运行此内容?

class MyClass extends JerseyTest () {
    @Override
    protected Application configure() {
        return new ResourceConfig(MyClass.class);
    }
    @Test
    testFirstThing() {
        // test some request  
    }
    @Test
    testFirstThing() {
        // test another request  
    }
}

答案 1

我今天遇到了同样的问题,一些测试通过了,但有些测试在BindException上失败了。

泽西岛测试文档中有一个解决方案:https://jersey.java.net/documentation/latest/test-framework.html#parallel

为了并行运行多个测试容器,您需要将TestProperties.CONTAINER_PORT设置为 0 值。这将告诉 Jersey 测试框架(和底层测试容器)使用第一个可用端口。

@Override
protected Application configure() {
    forceSet(TestProperties.CONTAINER_PORT, "0");
    return new ResourceConfig(MyClass.class);
}

答案 2

推荐