2013-04-04 29 views
6

Làm cách nào để đặt trong pom không biên dịch thử nghiệm trong Maven? Tôi đã thử:Làm cách nào để đặt trong pom để không biên dịch thử nghiệm?

<properties> 
    <skipTests>true</skipTests> 
</properties> 

nhưng trong trường hợp đó, Maven biên dịch các thử nghiệm nhưng không chạy chúng. Tôi cần Maven không biên dịch các bài kiểm tra của tôi.

+0

Tôi có thể hỏi: TẠI SAO? –

+0

Có thể bạn có một hồ sơ trỏ đến thư mục nguồn thử nghiệm. Nếu không, nó chỉ vào một sản phẩm nào. –

+0

Tôi không cần phải biên dịch chúng vì những thử nghiệm này gọi một webservice, phân tích các lớp của nó và như vậy. Khi dự án đang sử dụng Hudson để tích hợp liên tục, chúng ta cần phải biên dịch và chạy các kiểm tra này chỉ khi chúng ta giải thích đặt chúng làm điều này. –

Trả lời

0

Trong trường hợp của tôi một giải pháp là đặt thử nghiệm trong một hồ sơ (ví dụ runTests), vì vậy khi tôi muốn chạy các thử nghiệm này, tôi thêm các tham số -PrunTests. Cảm ơn bạn đã trả lời.

0

Nếu bạn đang sử dụng surefire-plugin cho các bài kiểm tra thực hiện, bạn có thể cấu hình nó để bỏ qua chúng dựa trên một mô hình đặt tên:

<project> 
    [...] 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.14</version> 
     <configuration> 
      <includes> 
      <include>%regex[.*[Cat|Dog].*Test.*]</include> 
      </includes> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    [...] 
</project> 

này, tuy nhiên, đòi hỏi tên các bài kiểm tra tập tin để phù hợp với mô hình mong muốn (S). Tại nơi làm việc, chúng tôi đang sử dụng phương pháp này và thử nghiệm kết thúc bằng ..UnitTest hoặc ..IntegrationTest để chúng tôi có thể dễ dàng tắt từng bước bằng cách sửa đổi regex trong hồ sơ xây dựng tương ứng.

Hãy xem Apache's documentation trên plugin chắc chắn. Bạn có thể tìm thấy một cái gì đó hữu ích hơn hoặc phù hợp hơn cho trường hợp của bạn.

5

Bạn phải xác định maven.test.skip thành true.

http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-test.html

+2

Việc bỏ qua này chạy chúng. OP muốn bỏ qua biên dịch –

+0

@ user2863942 Trích dẫn từ liên kết của tôi: _ "Nếu bạn hoàn toàn phải, bạn cũng có thể sử dụng thuộc tính maven.test.skip để bỏ qua việc biên dịch các thử nghiệm. Maven.test.skip được vinh danh bởi Surefire, Failsafe và Trình biên dịch Plugin "_ – maba

+0

@ user2863942 Vì vậy, hãy cho tôi biết, tại sao bạn lại bỏ phiếu cho câu trả lời đúng của tôi ???? – maba

0

Configure maven-biên dịch-plugin để bỏ qua việc biên soạn. Một lần nữa, tôi không khuyên bạn nên sử dụng nó.

<project> 
    <properties> 
    <maven.test.skip>true</maven.test.skip> 
    </properties> 
    [...] 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.0</version> 
     <configuration> 
     <executions> 
      <execution> 
      <id>default-testCompile</id> 
      <phase>test-compile</phase> 
      <goals> 
       <goal>testCompile</goal> 
      </goals> 
      <configuration> 
       <skip>${maven.test.skip}</skip> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    [...] 
</project> 
+0

Nếu tôi cần kích hoạt quá trình biên dịch thử và chạy sau này, cài đặt mvn clean -Dmaven.test.skip = false sẽ hoạt động? Hoặc tôi sẽ cần một tham số khác? –

+0

@Rafael. Tôi đoán, bạn có thể làm cho 'maven.test.skip' để kéo một nhiệm vụ gấp đôi –

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