Я не могу заставить автоматическое модульное тестирование работать с Jenkins и Sonar (и, наконец, с Maven) - PullRequest
0 голосов
/ 19 января 2012

Не знаю, правильно ли я что-то понимаю. Я пытаюсь заставить автоматическое модульное тестирование работать в моем проекте.

Я создал проект подключаемого модуля Eclipse и преобразовал его в проект Maven. Я сделал тестовый класс JUnit, тестирующий единственный класс в проекте. Я поместил каждый код в Maven (т. Е. Src / main / java main code и src / test / java test code).

Я поместил тестовый класс в src / test / java в пакет с именем pluginmaventest.actions.

Тестовый случай автоматически завершается неудачей, если он запускается в Eclipse как тест JUnit.

Я поделился проектом в репозитории SVN и выполнил задание Дженкинса (проект Maven 2/3). Я добавил зависимость JUnit в pom.xml и все необходимые зависимости tycho.

Сборка проекта выполнена успешно. Разве это не должно быть неудачно, потому что мой тест JUnit не проходит?

Я пытался

mvn clean install

и

mvn test

как цели. Я даже пытался использовать -Dtest=SomeClassTest. Сборка никогда не заканчивается.

Это, очевидно, означает, что модульный тест не компилируется и не выполняется, не так ли?

Я просто пытаюсь справиться с Дженкинсом, Сонаром и юнит-тестами. Моя основная задача - запустить модульные тесты с Jenkins, а затем попытаться запустить анализ кода и охват тестированием с помощью Sonar, который интегрирован в Jenkins. Существует ли всеобъемлющее и понятное руководство или инструкции в Интернете?

ADDENDUM:

  • Моя установка Jenkins может привести к сбоям сборки, поэтому проблем не должно быть.
  • Мой тестовый класс действительно называется SomeClassTest. О, oers уже редактировали это.
  • Локальные вызовы Maven для цели теста также не дают результатов.

Вот весь мой проект pom.xml. (без верного maven также не выдает никаких результатов)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://
maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test.maven.plugin</groupId>
<artifactId>pluginmaventest</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>Bla</name>
<packaging>eclipse-plugin</packaging>

<properties>
    <tycho-version>0.13.0</tycho-version>
</properties>
<repositories>
    <repository>
      <id>indigo</id>
      <layout>p2</layout>
      <url>http://download.eclipse.org/releases/indigo/</url>
    </repository>
</repositories>
<dependencyManagement>
<dependencies>
    <dependency>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-maven-plugin</artifactId>
        <version>${tycho-version}</version>
        <type>maven-plugin</type>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
    </dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.11</version>
    </plugin>
  </plugins>
</pluginManagement>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
  </plugin>
  <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-maven-plugin</artifactId>
        <version>${tycho-version}</version>
        <extensions>true</extensions>
    </plugin>
    <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <version>${tycho-version}</version>
        <configuration>
            <resolver>p2</resolver>
            <environments>
                <environment>
                    <os>linux</os>
                    <ws>gtk</ws>
                    <arch>x86</arch>
                </environment>
                <environment>
                    <os>linux</os>
                    <ws>gtk</ws>
                    <arch>x86_64</arch>
                </environment>
                <environment>
                    <os>win32</os>
                    <ws>win32</ws>
                    <arch>x86</arch>
                </environment>
                <environment>
                    <os>win32</os>
                    <ws>win32</ws>
                    <arch>x86_64</arch>
                </environment>
                <environment>
                    <os>macosx</os>
                    <ws>cocoa</ws>
                    <arch>x86_64</arch>
                </environment>
            </environments>
        </configuration>
    </plugin>
</plugins>

Ответы [ 3 ]

1 голос
/ 19 января 2012

Вы должны убедиться, что сборка запускает тесты локально при сборке с maven. Если это так, то, возможно, Jenkins не получает обновления от SVN. Сконфигурируйте его для проверки, а не обновления для сборки, и посмотрите, запускает ли он сейчас тесты. Если это не приводит к сбою (или, по крайней мере, к запуску тестов), взгляните на вывод консоли из сборки Jenkins и посмотрите, какие есть подсказки для вашей сборки.

0 голосов
/ 20 января 2012

проверьте настройку вашего проекта на работающем демонстрационном примере с тестами: http://git.eclipse.org/c/tycho/org.eclipse.tycho.git/tree/tycho-demo/itp01

0 голосов
/ 19 января 2012

Дженкинс должен пометить сборку как UNSTABLE (желтый шарик), если тест не пройден. Большинство людей считают, что это выше статуса FAILED (красный шар), потому что он предоставляет больше информации. Вы должны быть в состоянии увидеть график испытаний / неудач для всех заданий на странице сведений о задании.

Если вы хотите посмотреть, как выглядит сбой (например, вы хотите проверить работоспособность), вы можете попробовать зафиксировать некомпилируемый код или вызвать недопустимые цели Maven.

...