2012-06-17 4 views
7

При запуске mvn test maven не будет запускать все тестовые классы. Когда я явно предоставляю класс, добавляя -Dtest = PropertyTests, тесты будут запущены.Maven не будет запускать тесты

Вот мой pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<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/maven-v4_0_0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.example</groupId> 
    <artifactId>example</artifactId> 
    <version>1.0</version> 

    <properties> 
     <java-version>1.6</java-version> 
     <org.slf4j-version>1.6.6</org.slf4j-version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 

     <!-- Logging --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${org.slf4j-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>jcl-over-slf4j</artifactId> 
      <version>${org.slf4j-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>${org.slf4j-version}</version> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.16</version> 
      <scope>runtime</scope> 
     </dependency> 

     <!-- Test --> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.10</version> 
      <scope>test</scope> 
     </dependency> 

    </dependencies> 

    <build> 

     <plugins> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>${java-version}</source> 
        <target>${java-version}</target> 
       </configuration> 
      </plugin> 

     </plugins> 

    </build> 

</project> 

Почему Maven не будет запускать тесты автоматически? Я что-то пропустил?

ОБНОВЛЕНИЕ

Пример теста (класс находится в SRC/тест/Java/COM/например/PropertyTests.java):

public final class PropertyTests 
{ 
    @Test 
    public void testGetters() 
    { 
     Property property = new Property("foo", "bar"); 

     Assert.assertEquals("foo", property.getKey()); 
     Assert.assertEquals("bar", property.getValue()); 
    } 
} 

Maven выход на mvn test:

$ mvn test 
[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Unnamed - com.example:example:jar:1.0 
[INFO] task-segment: [test] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [resources:resources {execution: default-resources}] 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 1 resource 
[INFO] [compiler:compile {execution: default-compile}] 
[INFO] Compiling 13 source files to /home/danny/workspace/example/target/classes 
[INFO] [resources:testResources {execution: default-testResources}] 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 1 resource 
[INFO] [compiler:testCompile {execution: default-testCompile}] 
[INFO] Compiling 3 source files to /home/danny/workspace/example/target/test-classes 
[INFO] [surefire:test {execution: default-test}] 
[INFO] Surefire report directory: /home/danny/workspace/example/target/surefire-reports 

------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 

Results : 

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESSFUL 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 10 seconds 
[INFO] Finished at: Sun Jun 17 18:09:45 CEST 2012 
[INFO] Final Memory: 17M/42M 
[INFO] ------------------------------------------------------------------------ 

ответ

12

Чтобы запустить тесты, вам нужно добавить плагин maven surefire. Конфигурации можно найти здесь: http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html

UPDATE:

Вот конфигурация, которую я использую с спецификаций/JUnit.

  <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.8.1</version> 
       <configuration> 
        <includes> 
         <include>**/*Spec.*</include> 
         <include>**/*Test.*</include> 
        </includes> 
       </configuration> 
      </plugin> 

ОБНОВЛЕНИЕ 2:

Именования конвенция испытаний, поэтому изменить PropertyTests к PropertyTest.

+0

После добавления плагина surefire он все равно не будет запускать тесты (прогон тестов: 0). См. Обновленный вопрос для кода. – dtrunk

+0

Ваши тесты в src/test/java? Как выглядят ваши тесты? Какой результат вы получаете от maven? – Noah

+2

Думаю, вам может потребоваться сбросить 's' из 'PropertyTests'. – Noah

Смежные вопросы