2013-08-21 6 views
0

У меня возникли проблемы с компиляцией и запуском тестов JUnit с использованием проекта maven.maven run junit test

В pom.xml я добавил эти строки, чтобы настроить surfire плагина:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.16</version> 
    <configuration> 
     <encoding>UTF-8</encoding>      
     <skipTests>false</skipTests>         
     <includes> 
      <include>**/*.java</include> 
     </includes> 
    </configuration> 

    <executions> 
     <execution> 
      <id>unit-test</id> 
      <phase>test</phase> 
      <goals> 
       <goal>test</goal> 
      </goals> 
      <configuration> 
       <skip>false</skip> 
       <includes> 
        <include>**/Client*.java</include> 
       </includes> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

классов тестов по пути "SRC/тест/Java //".

Когда я запускаю команду mvn test я получаю этот выход:

[INFO] Storing buildScmBranch: trunk 
[INFO] [resources:resources {execution: default-resources}] 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 10 resources 
[INFO] [cxf-codegen:wsdl2java {execution: generate-sources}] 
[INFO] [compiler:compile {execution: default-compile}] 
[INFO] Nothing to compile - all classes are up to date 
[INFO] [resources:testResources {execution: default-testResources}] 
[INFO] Not copying test resources 
[INFO] [compiler:testCompile {execution: default-testCompile}] 
[INFO] Not compiling test sources 
[INFO] [surefire:test {execution: default-test}] 
[INFO] Tests are skipped. 
[INFO] [surefire:test {execution: unit-test}] 
[INFO] No tests to run. 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] No tests were executed! (Set -DfailIfNoTests=false to ignore this error.) 

Я действительно не могу понять, где я ошибаюсь.

EDIT: я изменил конфигурацию POM следующим образом, потому что я также заметил, что классы тестов также не были составлены:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.0.2</version> 
    <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
    </configuration> 
    <executions> 
     <execution> 
      <id>default-testCompile</id> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <skip>false</skip> 
       <additionalClasspathElements> 
        <additionalClasspathElement>${basedir}/target/*.jar</additionalClasspathElement> 
       </additionalClasspathElements> 
       <directory>${basedir}/src/test/java</directory> 
       <includes> 
        <include>**/*.*</include> 
       </includes> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Таким образом Maven начинают рассматривать свои источники тестов и попытаться скомпилируйте его, даже если он не скомпилирует их, потому что я сгенерировал код с помощью cxf-codegen-plugin, что тестовая компиляция, похоже, не видит этого.

ответ

1

Если вы следите за структурой Maven по умолчанию (код в src/main/java, тестах в src/test/java), вам не нужна какая-либо конкретная конфигурация в вашем pom.xml (цели тестирования встроены в Maven).

Попробуйте удалить специфические безошибочные конфигурации и просто работают:

mvn test 
+0

Я добавил безошибочную конфигурацию, потому что тест по-прежнему не работает, в надежде решить эту проблему. –

+1

«Тесты не срабатывали»: было ли сообщение об ошибке тем же (нет теста для запуска)? Можете ли вы опубликовать структуру своего проекта? mvn тест должен быть достаточным. – Martin

+0

сообщение об ошибке было «тесты пропущены», поэтому я решил настроить серфинг в pom.xml. Структура проекта является стандартной. –

2

ошибка означает, что ни один тест не соответствует **/Client*.java.

Проверьте правильность рисунка. Кроме того, mvn -X (включить вывод отладки) может дать вам некоторые подсказки относительно того, почему Maven не может найти какие-либо тесты.

+0

Все тестовые классы находятся под их каталогом пакетов. Должен ли я указать его или «**» достаточно? запуск mvn -X не дал мне больше намеков. –

+0

Имена тестовых классов должны заканчиваться «Тест». Образец по умолчанию - '**/* Test.java'. Если вы хотите все файлы, шаблон должен быть '**/*. Java' –

+0

Большое спасибо, я заменил свой **/Client * .java на **/*. Java –