IntelliJ Coverage не работает с Resteasy - PullRequest
0 голосов
/ 25 сентября 2018

Я пишу приемочные тесты для микросервиса Java, используя jUnit 4 и RestEasy.Я запускаю локальный сервер вне тестов, и тесты используют RestEasy, чтобы попасть на этот локальный URL для выполнения тестирования.Тесты являются функциональными, однако ни IntelliJ, ни Jacoco не могут обеспечить покрытие для тестируемого кода.

В настоящее время тесты настроены так:

@RunWith(SpringRunner.class)
public class BaseAcceptanceTest {

    @Value("${test.server.uri:http://localhost:8080}")
    String serverURI;

    public String getBaseUri() {
        Logger LOG = LoggerFactory.getLogger(getClass());
        LOG.info("Server under acceptance test: {} ", serverURI);
        return serverURI;
    }
}

Образец теста:

@Test
public void queryTest() throws Exception {
    given()
        .baseUri(getBaseUri())
        .param("q", "test")
        .when()
        .get("/v1/search/query")
        .then()
        .body("", MainValidationFactory.getValidator(VALIDATION_PREFIX + "Test"))
        .log()
        .ifValidationFails();
}

Я могу создать покрытие, если использую Spring Boot.:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {
    Server.class, ServerModule.class
})

Однако для этого требуется, чтобы сервер запускался каждый раз, когда я запускаю тесты, что очень неудобно для локального тестирования, а также сложно управлять в нашем конвейере сборки.

ЕстьЕсть ли способ настроить Resteasy, IntelliJ или Jacoco для получения покрытия с использованием не встроенного сервера?

...