2012-03-02 31 views
8

Sau khi nâng cấp tất cả phiên bản bổ trợ Maven cho dự án, tôi gặp sự cố sau: khi chạy lệnh cơ bản mvn test -Dtest=SomeTest, quá trình xây dựng hoàn thành không có thử nghiệm nào được thực thi . Trong thực tế, tôi không thể chạy bất kỳ thử nghiệm sử dụng tham số -Dtest (tất nhiên kiểm tra tồn tại, và được chạy khi tôi chỉ cần thực hiện mvn test).Maven surefire 2.12 không chạy thử nghiệm cụ thể bằng tham số -Dtest

Sau một số tìm kiếm, có vẻ như sự cố là do việc sử dụng plugin an toàn chắc chắn 2.12. Tôi đã thử nghiệm một số phiên bản Maven (2.2.1/3.0.2) và JUnit (4.7.x, 4.8, 4.10, hoặc thậm chí 3.8.x), nhưng chúng không ảnh hưởng đến vấn đề của tôi.

Vì vậy, có lẽ dự án của tôi có một số cấu hình cụ thể có thể ảnh hưởng đến điều đó? Dù sao, tôi đã tạo một dự án mới, sử dụng mvn archetype:generate (sử dụng org.apache.maven.archetypes cơ bản: maven-archetype-quickstart).

tôi sửa đổi chỉ có 2 thứ trong pom.xml: sử dụng JUnit 4.10 (nhưng nó không thay đổi bất cứ điều gì, tôi đã thử với các phiên bản khác), và xác định phiên bản của chắc chắn hơn:

<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>foo</groupId> 
    <artifactId>bar</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
     <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-surefire-plugin</artifactId> 
       <version>2.11</version> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

tôi chạy mvn test -Dtest=AppTest (xét nghiệm JUnit mặc định được tạo ra bởi nguyên mẫu):

------------------------------------------------------- T E S T S 
------------------------------------------------------- Running foo.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time 
elapsed: 0.031 sec 

Results : 

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

[INFO] 
------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] 

Bây giờ, tôi thay đổi pom.xml sử dụng phiên bản 2.12 cho chắc chắn và chạy lệnh một lần nữa:

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

Results : 

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

[INFO] 
------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] 
------------------------------------------------------------------------ [INFO] Total time: 0.907s [INFO] Finished at: Fri Mar 02 10:37:12 CET 
2012 [INFO] Final Memory: 3M/15M [INFO] 
------------------------------------------------------------------------ [ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-surefire-plugin:2.12:test 
(default-test) on project bar: No tests were executed! (Set -D 
failIfNoTests=false to ignore this error.) -> [Help 1] 

Xét nghiệm này được không chạy thời gian này :(

Theo như tôi lo ngại, tôi nghĩ rằng đó là một hồi quy, nhưng đó là khá bất ngờ. Thật vậy, JIRA defect được ghi lại trên phiên bản Surefire 2.12 và trong mô tả này, chúng thành công khi sử dụng tham số -Dtest.

Tôi có làm gì sai không? Hay đó là hồi quy thực sự (trong trường hợp này, tôi sẽ tạo ra JIRA)?

Cảm ơn.

Trả lời

13

Đó là lỗi trong phiên bản 2.12 - SUREFIRE-827.

+0

liên kết mới tới vấn đề: https://issues.apache.org/jira/browse/SUREFIRE-827 –

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