Maven-failsafe-plugin запускает тест с неправильного пути к классамJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Maven-failsafe-plugin запускает тест с неправильного пути к классам

Сообщение Anonymous »

У меня есть многомодульный проект, в котором в дочернем pom установлен традиционный плагин maven-failsafe

org.apache.maven.plugins
maven-failsafe-plugin
2.11



integration-test
verify





Но у меня есть зависимость от другого теста, например

my.project.group
core
1.0-SNAPSHOT
test


my.project.group
core
1.0-SNAPSHOT
test
test-jar>
test


Когда я начинаю тестирование через IDEA, например, щелкаю правой кнопкой мыши по папке теста и запускаю «Все тесты», мой тест начинается и заканчивается так, как я хочу.
Когда я начинаю с mvn clean Veryfy -Pit, где it мой профиль для интеграционного теста. Все начинается хорошо, но выглядит, что ресурсы не в {basedir}/target/classes, и я получаю
FileNotFoundException: файл:\C:\Users\User\AppData\Local\Temp\surefire1195270631651299000..%5C..%5C..%5C..%5C..%5C.. %5Crepos%5CMyProject%5Ccore%5Ctarget%5Ccore-1.0-SNAPSHOT-tests.jar!\csv\dict\V_DICT_USEDDATE_CODE
Почему?
PS . Добавьте дополнительную информацию:
В моем интеграционном тесте есть тест, подобный integration-test/src/test/java
@TestInstance(Lifecycle.PER_CLASS)
@ExtendWith(MockitoExtension.class)
public class ContextTest {

@SneakyThrows
public static CalcDBService getInstance() {
CalcDBService serviceLocal = new CalcDBService();
...
setField(serviceLocal, DictionaryServiceTest.getInstance(), "dictionaryService");
...
return serviceLocal;
}

@SneakyThrows
public static void setField(Object instance, Object value, String fieldName) {
final Field field = getField(instance, fieldName);
field.set(instance, value);
}

Здесь DictionaryServiceTest из core/srv/test/java
Итак, внутри < strong>ядро, которое мы можем найти
public class DictionaryServiceTest {
// fullpath is core/src/test/resources/csv/dict/V_DICT_USEDDATE_CODES.csv
public static final String CSV_DICT_CODES = "dict/V_DICT_CODES.csv";

public static DictionaryService getInstance() throws ReflectiveOperationException {

DictionaryService service = new DictionaryService();

service.applyCsv(TestUtils.csvToList(CSV_DICT_CODES, TestEntityUtils::getDate));
}
}

public class TestUtils {

private static final String RESOURCE_PATH = "csv/";

public static List csvToList(String csvFileName, Function mapper) {
ClassLoader classLoader = TestUtils.class.getClassLoader();
File file = getFile(classLoader, RESOURCE_PATH, csvFileName);
return FileUtils.readFileToString(file, StandardCharsets.UTF_8);
return csvStringToList(csv, mapper);
}

public static File getFile(ClassLoader loader, String dirPath, String filePath) {
String fullPath = StringUtils.stripEnd(dirPath, SLASH) + SLASH + filePath;
String file = Objects.requireNonNull(loader.getResource(fullPath), fullPath.concat(" not found!")).getFile();
return new File(file);
}
}

Как я уже упоминал, если я запущу его из IDEA, например, щелкну правой кнопкой мыши по папке теста и запущу «Все тесты», мой тест запустится и завершится четко без каких-либо ошибок. >
Исключение, когда я запускаю тест с помощью команды из терминала mvn clean Veryfy -Pit
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.137 s - in my.project.group.db.JdbcTemplateStoredProcedure

[INFO] Running my.project.group.ContextTest

[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.951 s

Подробнее здесь: https://stackoverflow.com/questions/790 ... -classpath
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»