У меня есть многомодульный проект, в котором в дочернем 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
Maven-failsafe-plugin запускает тест с неправильного пути к классам ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1728699878
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, например, щелкаю правой кнопкой мыши по папке теста и запускаю «Все тесты», мой тест начинается и заканчивается так, как я хочу.
Когда я начинаю с [b]mvn clean Veryfy -Pit[/b], где [b]it[/b] мой профиль для интеграционного теста. Все начинается хорошо, но выглядит, что ресурсы не в {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 . Добавьте дополнительную информацию:
В моем интеграционном тесте есть тест, подобный [b]integration-test/src/test/java[/b]
@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);
}
Здесь [b]DictionaryServiceTest[/b] из [b]core/srv/test/java[/b]
Итак, внутри < 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, например, щелкну правой кнопкой мыши по папке теста и запущу «Все тесты», мой тест запустится и завершится четко без каких-либо ошибок. >
Исключение, когда я запускаю тест с помощью команды из терминала [b]mvn clean Veryfy -Pit[/b]
[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
Подробнее здесь: [url]https://stackoverflow.com/questions/79079082/maven-failsafe-plugin-starts-test-from-wrong-classpath[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия