Как вы организуете тесты в модульном проекте Java? - PullRequest
0 голосов
/ 31 августа 2018

Я создаю модульную сборку (используя module-info.java) на GitHub , но при добавлении module-info.java к модулям, которые я хочу модульные, никакие тесты не могут быть выполнены .. .

Как мне этого добиться?

Я использую следующие версии:

  • junit.jupiter версии 5.3.0 (первый запуск также не удался с версией 5.2.0)
  • maven-compiler-plugin версии 3.8.0 (первый запуск также не удался с версией 3.7.0)
  • maven-surefire-plugin версии 2.22.0 (первый запуск также был неудачным с версией 2.21.0)

Типичная ошибка неудачных тестов выглядит следующим образом:

java.lang.reflect.InaccessibleObjectException: невозможно сделать com.github.jactor.rises.commons.dto.UserDtoTest () доступный: модуль jactor.rises.commons не открывается com.github.jactor.rises.commons.dto "для неназванного модуля @ 65e98b1c

1 Ответ

0 голосов
/ 31 августа 2018

Добро пожаловать в Тестирование в модульном мире !

Какие тесты вы хотите написать?

Тесты черного ящика : Создать проект только для тестирования (без каталога "src / main") и объявить дескриптор модуля "src / test / java / module-info.java".

Тесты белого ящика : Как и в первый день, вам нужно «смешать» / объединить / скрыть ваши тестовые классы с вашими основными классами или наоборот. Здесь у вас есть в основном два способа добиться этого:

  • «Компилировать модульные основные источники» и «исправлять простые тестовые источники» во время выполнения теста с некоторыми дополнительными «опциями JVM, взламывающими систему модуля» для выполнения тестов.
  • «Компилировать модульные источники тестов» и «Патчить модульные основные источники» во время компиляции для выполнения тестов.

Блог

https://sormuras.github.io/blog/2018-09-11-testing-in-the-modular-world

Примеры * +1026 * План незавершенного производства https://github.com/sormuras/sandbox/tree/master/sors-modular-testing-blueprint Интеграционные тесты, начинающиеся с "modular-world-" в https://github.com/sormuras/junit-platform-maven-plugin/tree/master/src/it Фон и другие ресурсы

...