У меня есть решение, которое состоит из 3 проектов, 2 из которых используют последний проект в качестве библиотеки классов (сущности, репозитории, службы, исключения и другой общий код находятся в этой библиотеке). Я использую Jacoco в двух других проектах, которые зависят от библиотеки классов, чтобы понять, сколько сценариев мне нужно протестировать.
Тестирование на двух дочерних проектах простое, посмотрите на это, например:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {MDHIS_WebClient.class, ApplicationConfiguration.class, HibernateConfiguration.class},
webEnvironment = WebEnvironment.DEFINED_PORT)
public class UserServiceTest
{
@Autowired
private UserService userService;
@Test
public void checkIfAdminUserExists()
{
assertNotNull(userService.findByUserId("admin"));
}
}
Однако отчет Jacoco содержит только результаты для этого проекта, а не библиотеку классов, от которой он зависит. Я не могу найти способ создания такого рода тестов в библиотеке классов, поскольку это просто библиотека. У JUnit нет контекста, в который можно было бы зацепиться, поскольку он ничего не делает сам по себе. Тем не менее, в этой библиотеке классов есть сотни методов, которые я хочу протестировать, и я не могу понять, как представить их Jacoco. Я могу написать тесты JUnit в одном из дочерних проектов, которые тестируют функции в библиотеке классов, фактически мой пример, приведенный выше, является именно таким тестом, но Jacoco не дает никаких результатов для него, поскольку он включен в проект с зависимостью Maven.
Как можно получить результаты для этой общей библиотеки в одном из зависимых проектов или как создать тесты JUnit в библиотеке классов, которые не зависят от контекста?
Спасибо!