Ошибка компиляции: пакет не существует Ошибка Maven при импорте из отдельного модуля - PullRequest
0 голосов
/ 26 января 2019

Чтобы кратко поделиться историей, я настраиваю модуль Sonarqube и отчеты о тестировании интеграции для многомодульного проекта Maven.Следуя примеру этого проекта , я смог получить покрытия как для юнит-тестов, так и для интеграционных тестовых линий, которые будут отслеживаться в комбинированном отчете и отображаться после локального запуска Sonarqube и запуска команды mvn clean install failsafe:integration-test sonar:sonar.

Итак, это доказательство концепции на месте и работает хорошо, и теперь я хочу иметь возможность запускать интеграционные тесты, которые имеют зависимости, распределенные по различным дочерним модулям.У нас есть следующая (упрощенная) структура каталогов:

pom.xml (parent)
|--lambda
|----pom.xml
|--common
|----pom.xml

Например, у меня в проекте есть следующие фиктивные классы для проверки этого:

EmailDummy.java

package com.<PROJECT_NAME>.common.emailcomponents;

import com.<PROJECT_NAME>.<PRODUCT>.lambda.EmailDummyDependency;

public class EmailDummy {
   public static int callDependency(int num) {
       return EmailDummyDependency.absoluteVal(num);
   }
}

EmailDummyDependency.java

package com.<PROJECT_NAME>.<PRODUCT>.lambda.authorizers;

public class EmailDummyDependency {
    /**
     * Return the absolute value of a number.
     * @param num an integer
     */
     public static int absoluteVal(int num) {
         if (num > 0) {
            return num;
         } else {
            return -num;
         }
     }
 }

и интеграционный тест, в котором мы хотим проверить их взаимодействие:

EmailDummyIT.java

package com.<PROJECT_NAME>.mpa.tests;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;
import com.<PROJECT_NAME>.common.emailcomponents.EmailDummy;
import org.junit.Before;
import org.junit.jupiter.api.TestInstance;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.modules.junit4.PowerMockRunner;

@PowerMockIgnore("javax.management.*")
@RunWith(PowerMockRunner.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class EmailDummyIT {

  private EmailDummy emailDummy = new EmailDummy();

  @Before
  public void before() {
    /* TODO */
  }

  @Test
  public void test1() throws Exception {
    assertTrue(emailDummy.callDependency(-1) == 1);
  }

  @Test
  public void test2() throws Exception {
    assertTrue(emailDummy.callDependency(1) == 1);
  }
}

Когда я запускаю команду mvn clean install failsafe:integration-test sonar:sonar, я получаю следующую ошибку:

enter image description here

цензурированная часть изображения имеет то же значение, что и PROJECT_NAME в приведенных мной примерах кода.Если я поместил оба EmailDummyDependency.java и EmailDummy.java в одном и том же модуле, тесты будут работать отлично, но в отдельных модулях это не так и выдают вышеуказанную ошибку.

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