У меня есть следующая установка:
Apache Maven 3.8.1
Maven home: /Users/deyb/.sdkman/candidates/maven/current
Java version: 1.8.0_342, vendor: Azul Systems, Inc., runtime: /Users/myuser/.sdkman/candidates/java/8.0.342-zulu/zulu-8.jdk/Contents/Home/jre
Default locale: en_PH, platform encoding: US-ASCII
OS name: "mac os x", version: "12.3", arch: "aarch64", family: "mac"
Установка jdk и maven, установленная через sdkman, работающая на Mac M1.
при сборке проекта я получаю успешную сборку maven, показывающую все тесты, пройденные без сбоев. Запуск модульного теста для одного из ожидаемых сбойных классов через ide показывает результаты неудачных тестов, и я не могу понять, почему он ведет себя по-другому. Я ожидаю, что это потерпит неудачу; но сборка maven по-прежнему приводит к успешной сборке
Чтобы дать больше контекста:
пример у меня есть тестовый класс: com.sample.MySampleTest
Фрагмент модульного теста
import junit.runner.Version;
...
Set<ConstraintViolation<MySample>> violations = validator.validate(dto);
log.info("violations count >>> {}", violations.size());
log.info("JUnit version is: " + Version.id());
assertThat(violations, hasSize(1));
Журналы из сборки Maven:
08:04:22.880 [main] INFO c.s.MySampleTest - violations count >>> 1
08:04:22.880 [main] INFO c.s.MySampleTest - JUnit version is: 4.12
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 sec
Журналы из IDE, в результате которых тест не пройден:
08:05:03.431 [main] INFO c.s.MySampleTest - violations count >>> 0
08:05:03.431 [main] INFO c.s.MySampleTest - JUnit version is: 4.12
java.lang.AssertionError:
Expected: a collection with size <1>
but: collection size was <0>
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:956)
at org.junit.Assert.assertThat(Assert.java:923)
Я попробовал следующее и получил такое поведение:
export PATH = "$PATH:/Applications/IntelliJ IDEA CE.app/Contents/plugins/maven/lib/maven3/bin"; также сделал chmod за правильное разрешение, но результаты такие жеrun all tests через пакет IntelliJ at com.sample показывает неудачный тест в MySampleTest (это правильное поведение)run all tests через intellj, выполненный на comпакете, показывает неудачный тест в MySampleTest (это правильное поведение)run all tests через intellj, выполненный на уровне модуля, показывает неудачный тест в MySampleTest (это правильное поведение).m2 репозитория для повторной загрузки и сделал mvn clean install также результаты для успешной сборкиmvn clean install результатов неудачной сборки, указывающих на неудачный тестAssert.assertEquals(true, false); и запустил его через результаты maven для неудачной сборки (что ожидается, но сообщается только о тривиальном тесте, а не о тесте из MySampleTest)junit.runner.Version.id(), чтобы обеспечить соответствие версий)Учитывая такое поведение, есть ли другой способ определить, что приводит к успешному выполнению пакета/установки через maven cli, даже если есть неудачные тесты, и они не пропущены?
версия jdk в проекте одинакова как в CLI, так и в IDE

С точки зрения процедуры, нет, это в значительной степени метод проб и ошибок. Тем не менее, вот еще несколько вещей, которые можно попробовать, некоторые из которых могут иметь или не иметь отношение к вашему конкретному тесту:
2-й пункт (и 5) в списке имел значение. Тестовые данные отличались из-за статической инициализации при совместном поиске (т. е. хранилище в памяти, используемое одним из валидаторов). Пришел к выводу, что это больше вопрос дизайна. Спасибо
Что установлено для jdk в «Проекте» в вашей среде IDE? это то же самое, что и командная строка?