2014-06-09 45 views
25

Tôi gặp lỗi sau khi chạy Kiểm tra đơn vị trong IntelliJ: Lỗi: Không tìm thấy hoặc tải lớp chính $ {surefireArgLine}. Tôi đang sử dụng maven và trong pom.xml Tôi có:

<properties> 
    ... 
    <surefire.argLine /> 
</properties> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>com.mysema.maven</groupId> 
      <artifactId>apt-maven-plugin</artifactId> 
      <version>1.1.1</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>process</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>target/generated-sources/java</outputDirectory> 
         <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.17</version> 
     <configuration> 
      <!--Sets the VM argument line used when unit tests are run.--> 
      <argLine>${surefire.argLine}</argLine> 
     </configuration> 
    </plugin> 
    <plugin> 
      <groupId>org.jacoco</groupId> 
      <artifactId>jacoco-maven-plugin</artifactId> 
      <version>0.7.1.201405082137</version> 
      <executions> 
       <!-- 
        Prepares the property pointing to the JaCoCo runtime agent which 
        is passed as VM argument when Maven the Surefire plugin is executed. 
       --> 
       <execution> 
        <id>pre-unit-test</id> 
        <goals> 
         <goal>prepare-agent</goal> 
        </goals> 
        <configuration> 
         <!--Sets the path to the file which contains the execution data.--> 
         <destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile> 
         <!-- 
          Sets the name of the property containing the settings 
          for JaCoCo runtime agent. 
         --> 
         <propertyName>surefireArgLine</propertyName> 
        </configuration> 
       </execution> 
    ... 

Có ai có vấn đề tương tự không? Làm thế nào để thiết lập giá trị cho surefireArgLine?

Trả lời

0

Tôi phát hiện ra rằng tôi phải chạy trường hợp thử nghiệm của mình từ maven với mvn -Dtest = TestCircle test không trực tiếp từ IDE.

+1

Bạn đã bao giờ tìm thấy một sự sollution khác cho điều này? Tôi cần phải chạy nó từ IDE của tôi để có thể sử dụng chế độ gỡ lỗi. – LisaMM

+0

Unfortunatelly Tôi đã không tìm thấy một giải pháp cho việc này. – BlueLettuce16

+2

@LisaMM bạn có thể gỡ lỗi kiểm tra mà không cần chạy thử nghiệm trong một IDE. Chỉ cần bắt đầu các bài kiểm tra với * mvnDebug * trên dòng lệnh. Sau đó, sử dụng IDE yêu thích của bạn để kết nối với quá trình dòng lệnh. Google cho "gỡ lỗi từ xa" trong IDE yêu thích của bạn. – jah

4

tôi đã có thể khắc phục lỗi này trong Netbeans bằng cách thay đổi phiên bản chắc chắn hơn-plugin để 2.10 và loại bỏ

<argLine>-Xmx1024m -XX:MaxPermSize=256m ${argLine}</argLine> 

từ cấu hình maven-surefire-plugin. Thay vào đó tôi đã tạo ra một thuộc tính argLine được chọn tự động bởi chắc chắn.

<properties> 
    <argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine> 
    </properties> 

<build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.10</version> 
     </plugin> 

Bây giờ, tôi có thể chạy và gỡ lỗi các tệp đơn và phương pháp thử nghiệm. Và Mã Bảo hiểm đang hoạt động như mong đợi.

+0

Nó giải quyết vấn đề của tôi trong Netbeans 8.2. Cảm ơn !!! –

74

Tôi gặp vấn đề tương tự và tôi nghĩ rằng tôi đã tìm thấy giải pháp trên vertx-issue tracker.

Tóm lại, bạn phải định cấu hình tích hợp IntelliJ Maven (plugin chắc chắn) để hoạt động khác đi.

Làm điều này qua: Preferences -> Build,Execution,Deployment -> Build Tools -> Maven -> Running Tests

Bỏ chọn argLine

này làm việc cho tôi trong IntelliJ 14.1.6 với mvn 3.3.9

+5

Cảm ơn cùng một vấn đề ở đây vào đầu năm 2016;) –

+7

Trong Intellij 2016: 'Cài đặt' ->' Xây dựng, Thi hành, Triển khai' -> 'Công cụ Xây dựng' ->' Maven' -> 'Chạy Thử nghiệm ' – DieterDP

+2

Vẫn còn vấn đề này vào năm 2017, giải pháp hoạt động. – Radu

0

Đang tìm kiếm này và thấy dự án này "sửa chữa" nó trong số này thread

Về cơ bản, hãy xác định tên biến thể jacocoArgLine của bạn là thuộc tính dự án trống. Sau đó, trong cấu hình chắc chắn sử dụng @ {jacocoArgLine} thay vì tiền tố đô la.

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