2012-06-17 46 views
7

Khi chạy mvn test maven sẽ không chạy tất cả các Lớp thử nghiệm. Khi tôi cung cấp một lớp một cách rõ ràng bằng cách thêm -Dtest = PropertyTests, các thử nghiệm sẽ được chạy.Maven sẽ không chạy thử nghiệm

Dưới đây là pom.xml của tôi:

<?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> 

Tại sao maven sẽ không chạy các bài kiểm tra tự động? Tôi đã bỏ lỡ một cái gì đó?

CẬP NHẬT

kiểm tra Ví dụ (Class là trong src/kiểm tra/java/com/example/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 đầu ra trên 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] ------------------------------------------------------------------------ 

Trả lời

12

Bạn cần thêm plugin maven chắc chắn để chạy thử nghiệm. Cấu hình có thể được tìm thấy ở đây: http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html

UPDATE:

Dưới đây là một cấu hình mà tôi đã sử dụng với thông số kỹ thuật/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> 

UPDATE 2: ước

Việc đặt tên là thử nghiệm, vì vậy thay đổi PropertyTests để PropertyTest.

+0

Sau khi thêm plugin chắc chắn, nó vẫn không chạy thử nghiệm (Kiểm tra chạy: 0). Xem câu hỏi cập nhật cho mã. – dtrunk

+0

Bài kiểm tra của bạn có phải là src/test/java không? Các xét nghiệm của bạn trông như thế nào? Bạn nhận được kết quả gì từ maven? – Noah

+2

Tôi nghĩ rằng bạn có thể cần phải thả 's' từ 'PropertyTests'. – Noah

Các vấn đề liên quan