2012-02-14 28 views
7

Có thể chạy thử nghiệm xây dựng maven (mvn clean test) trong dự án maven nhiều mô-đun và bỏ qua/bỏ qua kiểm tra của mô-đun cụ thể không? như -Dmaven.test.skip=true nhưng đối với một mô-đun cụ thể và không phải tất cả các mô-đun? Tôi không muốn thay đổi chắc chắn <configuration> để bao gồm <skipTests>true</skipTests> cho mô-đun mà tôi muốn bỏ qua để kiểm tra. Tôi muốn biết nếu điều này có thể được thực hiện từ dòng lệnh. Tôi cần điều này vì trong dự án của tôi có nhiều mô-đun và một hoặc hai cụ thể mất nhiều thời gian để thực thi kiểm tra, vì vậy khi tôi chỉ muốn thử nghiệm một vài mô-đun, tôi muốn bỏ qua các mô-đun này mà tôi không đã thực hiện bất kỳ thay đổi nào.Bỏ qua một mô-đun trong quá trình xây dựng thử maven cho dự án maven đa mô-đun

+1

Yes. Bạn cần phải đọc trên [hồ sơ maven] (http://maven.apache.org/guides/introduction/introduction-to-profiles.html) –

Trả lời

5

Có thực sự là một vấn đề đối với bạn để thay đổi cấu hình của plugin chắc chắn không? Bởi vì bạn có thể thay đổi nó một lần duy nhất trong mô-đun của bạn ...

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.12</version> 
      <configuration> 
       <skipTests>${skip.foo.module.tests}</skipTests> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

... và ủy giá trị đúng/sai của thẻ skipTests để một tài sản maven, kích hoạt bằng một hồ sơ chuyên dụng:

<properties> 
    <skip.foo.module.tests>false</skip.foo.module.tests> 
</properties> 

<profiles> 
    <profile> 
     <id>SKIP_FOO_MODULE_TESTS</id> 
     <properties> 
      <skip.foo.module.tests>true</skip.foo.module.tests> 
     </properties> 
    </profile> 
</profiles> 

Vì vậy mà bạn có thể tắt các bài kiểm tra trong mô-đun Foo với dòng lệnh:

mvn sạch kiểm tra -P SKIP_FOO_MODULE_TESTS

+0

Cảm ơn Yanflea. Mặc dù điều này không chính xác những gì tôi muốn, nhưng điều này làm việc cho tôi. Với cách tiếp cận này tôi có thể có một hồ sơ tại một thời điểm, vì vậy trong trường hợp nếu tôi muốn bỏ qua các bài kiểm tra cho nhiều hơn một mô-đun, tôi không thể. Nhưng dù sao thì sẽ có quá ít. – Jay

+0

Mô-đun của bạn có thể chia sẻ cùng một pom cha mẹ, trong đó bạn xác định hồ sơ của bạn. Điều gì ngăn cản bạn sử dụng cùng một cấu hình để bỏ qua các thử nghiệm trên một vài mô-đun con cùng một lúc? – Yanflea

+0

Điều đó sẽ chỉ hoạt động nếu tôi muốn bỏ qua cùng một mô-đun mọi lúc. Khi tôi đang phát triển, đôi khi tôi thay đổi module-1 mà không ảnh hưởng đến module-7 và module-9, vì vậy tôi muốn bỏ qua, nhưng vào một thời điểm khác nếu tôi thay đổi module-3, điều này sẽ ảnh hưởng đến module-7, nhưng không phải module-9, trong trường hợp đó tôi chỉ muốn bỏ qua module-9. Đối với các tình huống như vậy, việc chia sẻ hồ sơ trong phụ huynh sẽ không hoạt động. Bây giờ tôi không muốn gây ô nhiễm cho cha mẹ tôi với tất cả các loại hồ sơ bỏ qua kiểm tra cho các mô-đun khác nhau và kết hợp. – Jay

0

Bạn có thể thực hiện điều đó bằng hồ sơ đã thực hiện cấu hình chắc chắn để bỏ qua. Điều đó sẽ cho phép bạn giữ cho thử nghiệm chạy hầu hết thời gian, nhưng khi bạn muốn bỏ qua các thử nghiệm cho một trong các mô đun đôi khi, bạn có thể gọi hồ sơ đó. Sau đó, bạn có thể loại trừ tất cả các thử nghiệm bằng cách sử dụng kiểm tra bỏ qua hoặc bạn có thể sử dụng tùy chọn loại trừ để chỉ loại trừ một hoặc hai thử nghiệm thực thi lâu dài.

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