Подтвердить что ты не робот

Режим вилки плагина Maven

По умолчанию maven surefile плагин запускает тесты в изолированной (разветвленной) среде. Вы можете переопределить это поведение со следующей конфигурацией:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <forkMode>never</forkMode>
      </configuration>
    </plugin>
  </plugins>
</build>

Если вам нужно отлаживать тесты, вы должны использовать этот фрагмент конфигурации. Или вы можете просто запустить maven build следующим образом:

$ mvn -Dmaven.surefire.debug tests

Это запустит отладчик на порту 5005.

Мой вопрос: какие преимущества имеют стратегия forking и почему выбрана в качестве стратегии по умолчанию для сборки maven? Не является ли стратегия неоркинга более простой и поэтому ее следует использовать по умолчанию (maven - соглашение по настройке, справа)?

4b9b3361

Ответ 1

Мой вопрос: какие преимущества имеют стратегия forking и почему выбрана в качестве стратегии по умолчанию для сборки maven?

По умолчанию Surefire разворачивает ваши тесты, используя JAR только для манифеста. ИМО, основные преимущества заключаются в следующем:

  • он предоставляет изолированную среду с каким-то "правильным" пути к классам.
  • он защищает сам процесс maven (что хорошо, особенно если Maven работает в вашей среде IDE).

Не является ли стратегия неоркинга более простой и поэтому должна использоваться как значение по умолчанию?

Прямо для чего? Легкая отладка внутри IDE? Я считаю, что это не было первоначальным намерением (и я предпочитаю подключать удаленный отладчик, если возникнет такая необходимость, и сохранить основной процесс Maven безопасным).

См. также

Ответ 2

режим forking позволяет загрузить путь к системному классу, если он установлен на "true" или "once". Но иногда установка режима fork = true caues, например, "слишком длинная строка сообщения" или "есть ошибки тестирования", если используется плагин maven-surefire 2.5. Чтобы избежать этой ошибки, рекомендуется использовать forkmode = никогда не использовать плагин suefire 2.5