Вопрос

Некоторое время я использовал maven2 и hudson для непрерывной интеграции, но обнаружил, что Eclipse и Maven не очень хорошо работают вместе.Конечно, есть плагин, но неудобно объединять проект maven во что-то, что нравится eclipse, а время сборки и модульного тестирования слишком велико.Я подумываю вернуться к чистому проекту затмения без участия ant и maven.С бесконечным плагином и, возможно, агентом JavaRebel, это дало бы мне очень быстрый цикл сборки-развертывания-тестирования.Однако мне все равно хотелось бы иметь автоматическое тестирование и тестирование, поэтому:

Как использовать непрерывную интеграцию с проектом Eclipse?

Есть ли способ сделать это из командной строки?

Есть ли сервер сборки, который уже поддерживает его изначально?

Это было полезно?

Решение 2

Мне удалось найти хорошее решение.Я просто получил бесконечность (можно установить с торговой площадки Eclipse), чтобы работать при использовании maven и eclipse.

В Eclipse->Свойства проекта->Путь сборки Java->Источник снимите флажок:"Разрешить выходные папки для исходных папок"

Это позволит вашему проекту иметь более одного пути вывода, и Eclipse начнет сообщать о тестовых классах как о части пути к классам.Теперь Infinitest находит его и начинает тестировать!

Все, что я сделал, это использовал официальный плагин Maven Eclipse и добавил его в свой POM.

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.5</version>
        <!-- <scope>provided</scope> -->
    </dependency>

    <dependency>
        <groupId>org.infinitest</groupId>
        <artifactId>infinitest</artifactId>
        <scope>test</scope>
        <version>4.0</version>
    </dependency>

</dependencies>

Другие советы

Да, плагин Eclipse Maven2 на данный момент — дерьмо.Но я бы посоветовал вам подождать, использование Maven2 дает много преимуществ, так что оно на самом деле уравновешивается.

Что мы делаем, так это то, что мы используем Eclipse для разработки и используем Maven только для управления зависимостями.Все остальное делается путем запуска «mvn» в командной строке.Мы храним тесты в своих собственных проектах интеграционного тестирования (...-itest) и имеем сервер непрерывной интеграции, который выполняет сборку в два этапа: сначала создается фактический код, а затем проходит сборка и запуск проектов -itest.(Первый проход (чистая сборка) обычно выполняется очень быстро, а сборка интеграционных тестов (с запуском тестов) обычно занимает довольно много времени.)

Вот командная строка для запуска тестов mvn:mvn -o verify -Ditest

Конечно, вам нужно определить профиль «itest» в родительском pom:Скажем, вот так:

<profiles>
  <profile>
    <id>integration-test</id>
    <activation>
      <property>
        <name>itest</name>
      </property>
    </activation>
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <executions>
            <execution>
              <id>itest</id>
            </execution>
          </executions>
          <configuration>
            <testSourceDirectory>src/main</testSourceDirectory>
            <testClassesDirectory>target/classes</testClassesDirectory>
            <forkMode>once</forkMode>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>

Я успешно использовал Eclipse + Ant с CruiseControl.Если вам нужна автоматизация, вам, вероятно, понадобится нечто большее, чем просто чистый Eclipse.

CruiseControl может автоматически получить копию вашего проекта из системы контроля версий, собрать ее, запустить тесты, а затем обновить веб-приложение с учетом результатов.Последний раз, когда я им пользовался, он был довольно гладким, но это было очень давно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top