junit 5 скомпилировать как модуль - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть вопрос о junit.jupiter. Полезно ли скомпилировать тест как модуль? Что-то в этом роде?

module usecases {
  requires org.junit.jupiter.api;
}

Когда я пытаюсь скомпилировать с помощью ant, я получаю следующее сообщение об ошибке:

[javac] error: module not found: org.opentest4j
[javac] error: module not found: org.apiguardian.api

Я не понимаю этого, потому что внутри classpath он компилируется без проблем а в модуле-пути нет?

1 Ответ

0 голосов
/ 22 февраля 2020

Оба модуля, а также org.junit.platform.commons необходимы для удовлетворения деклараций org.junit.jupiter.api. Посмотрите этот фрагмент дескриптора модуля:

/**
 * Defines JUnit Jupiter API for writing tests.
 */
module org.junit.jupiter.api {
    requires transitive org.apiguardian.api;
    requires transitive org.junit.platform.commons;
    requires transitive org.opentest4j;

    exports org.junit.jupiter.api;
...
}

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

IIR C, по умолчанию "JUnit В 5-дюймовой интеграции Ant используется немодульный артефакт junit-platform-console-standalone. Его JAR-файл содержит все необходимые нормальные классы, но не содержит module-info.class файлов. Поэтому компиляция и запуск на пути к классам работает "из коробки".

Дополнительные и последние сведения об использовании "Задачи JUnitLauncher" можно найти здесь: https://ant.apache.org/manual/Tasks/junitlauncher.html

...