Как я могу использовать JUnit Test Runners в проекте Maven? - PullRequest
0 голосов
/ 10 сентября 2018

Я создал быстрый старт maven проекта с зависимостью:

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

У меня есть исходный класс:

main.java.test.App

и тестовый класс:

test.java.test.AppTest

Поэтому, когда я пытаюсь создать объект Result в классе App и использовать JUnitCore, он возвращает ошибку компиляции, потому что зависимость в junit - это «test». Если я изменяю или удаляю область из зависимости, я не могу получить доступ к классу AppTest из приложения.

Разве нельзя использовать Test Runners с конфигурацией Maven?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Вы должны никогда получить доступ к классу Test из класса App (и, честно говоря, вы не можете).

Тестовый код полностью отделен от вашего основного кода. Тестовый код может получить доступ к вашему основному коду, но ваш основной код никогда не сможет получить доступ к вашему тестовому коду .

Это важно. Ваш тестовый код должен подтвердить ваш реальный код. Если основной код может получить доступ к тестовому коду, то вы можете нарушить то, что пытаетесь проверить.

Тестовые зависимости помечаются как "тестовая" область действия, чтобы гарантировать, что Maven знает, что они не связаны с основным кодом.

0 голосов
/ 10 сентября 2018

Вы не можете получить доступ к AppTest из своего класса App.

Зависимость junit имеет область действия test , что означает, что зависимости junit (библиотеки) используются только для компиляции и запуска тестов,следовательно, они не доступны из вашего основного кода (это приложение обычно находится в src / main).

Все ваши тестовые примеры должны быть расположены в src / test / java и будут выполнятьсяпо maven при выполнении mvn test или mvn package (или любой цели, у которой тест является промежуточной)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...