การรับ“ การข้ามการดำเนินการ JaCoCo เนื่องจากไฟล์ข้อมูลการดำเนินการหายไป” เมื่อดำเนินการ JaCoCo


123

ฉันใช้ Maven 3.0.3, JUnit 4.8.1 และ Jacoco 0.6.3.201306030806 และฉันกำลังพยายามสร้างรายงานความครอบคลุมการทดสอบ

ฉันมีโปรเจ็กต์ที่มีการทดสอบหน่วยเท่านั้น แต่ฉันไม่สามารถเรียกใช้รายงานได้ฉันได้รับข้อผิดพลาดซ้ำ ๆ : Skipping JaCoCo execution due to missing execution data fileเมื่อฉันเรียกใช้:

mvn clean install -P test-coverage

นี่คือวิธีกำหนดค่า pom ของฉัน:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.14.1</version>
  <configuration>
    <reuseForks>true</reuseForks>
    <argLine>-Xmx2048m</argLine>
  </configuration>
</plugin>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-failsafe-plugin</artifactId>
  <version>2.14.1</version>
  <configuration>
    <reuseForks>true</reuseForks>
    <argLine>-Xmx4096m -XX:MaxPermSize=512M ${itCoverageAgent}</argLine>
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>integration-test</goal>
        <goal>verify</goal>
      </goals>
    </execution>
  </executions>
</plugin>
...
<profile>
  <id>test-coverage</id>
  <build>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.6.3.201306030806</version>
        <configuration>
          <destfile>${basedir}/target/coverage-reports/jacoco-unit.exec</destfile>
          <datafile>${basedir}/target/coverage-reports/jacoco-unit.exec</datafile>
        </configuration>
        <executions>
          <execution>
            <id>prepare-unit-tests</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <!-- prepare agent for measuring integration tests -->
          <execution>
            <id>prepare-integration-tests</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
            <phase>pre-integration-test</phase>
            <configuration>
              <propertyName>itCoverageAgent</propertyName>
            </configuration>
          </execution>
          <execution>
            <id>jacoco-site</id>
            <phase>verify</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</profile>

การทดสอบทั้งหมดของฉันดำเนินไปอย่างเรียบร้อย นี่คือผลลัพธ์บางส่วนจาก Maven:

[INFO] --- jacoco-maven-plugin:0.6.2.201302030002:prepare-agent (prepare-unit-tests) @ myproject ---
[INFO] argLine set to -javaagent:/Users/davea/.m2/repository/org/jacoco/org.jacoco.agent/0.6.2.201302030002/org.jacoco.agent-0.6.2.201302030002-runtime.jar=destfile=/Users/davea/Dropbox/workspace/myproject/target/jacoco.exec
[INFO] 
    ...
Tests run: 14, Failures: 0, Errors: 0, Skipped: 0

[INFO]
    ...
[INFO] 
[INFO] --- jacoco-maven-plugin:0.6.2.201302030002:prepare-agent (prepare-integration-tests) @ myproject ---
[INFO] itCoverageAgent set to -javaagent:/Users/davea/.m2/repository/org/jacoco/org.jacoco.agent/0.6.2.201302030002/org.jacoco.agent-0.6.2.201302030002-runtime.jar=destfile=/Users/davea/Dropbox/workspace/myproject/target/jacoco.exec 
[INFO] 
[INFO] --- maven-failsafe-plugin:2.14.1:integration-test (default) @ myproject ---
[WARNING] File encoding has not been set, using platform encoding MacRoman, i.e. build is platform dependent!
[INFO] 
[INFO] --- maven-failsafe-plugin:2.14.1:verify (default) @ myproject ---
[INFO] Failsafe report directory: /Users/davea/Dropbox/workspace/myproject/target/failsafe-reports
[WARNING] File encoding has not been set, using platform encoding MacRoman, i.e. build is platform dependent!
[INFO] 
[INFO] --- jacoco-maven-plugin:0.6.2.201302030002:report (jacoco-site) @ myproject ---
[INFO] Skipping JaCoCo execution due to missing execution data file
[INFO] 

ความคิดใดที่ฉันขาดหายไป?



ดูเหมือนว่าคุณจะมีการทดสอบการรวมในปอมของคุณซึ่งอาจทำให้ไขว้เขว นอกจากนี้เรายังตัดdestFileและปล่อยให้มันเขียนไปยังไฟล์เป้าหมาย / jacoco.exec เริ่มต้น
MarkHu

ผมได้โพสต์คำตอบที่นี้สถานที่ตั้ง
Shivkumar Kawtikwar

คำตอบ:


135

jacoco-Maven ปลั๊กอิน: 0.7.10-ภาพรวม

จากjacoco: ผู้จัดเตรียมที่พูดว่า:

วิธีหนึ่งในการดำเนินการนี้ในกรณีของ maven-surefire-plugin - คือการใช้ไวยากรณ์สำหรับการประเมินคุณสมบัติล่าช้า:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <argLine>@{argLine} -your -extra -arguments</argLine>
  </configuration>
</plugin>

หมายเหตุว่าเพิ่มไปยัง@{argLine}-your -extra -arguments

ขอบคุณSlava Semushinสำหรับสังเกตเห็นการเปลี่ยนแปลงและการรายงานในความคิดเห็น

jacoco-Maven ปลั๊กอิน: 0.7.2-ภาพรวม

ตามjacoco: ผู้จัดเตรียมที่พูดว่า:

[org.jacoco: jacoco-maven-plugin: 0.7.2-SNAPSHOT: เตรียมตัวแทน]เตรียมคุณสมบัติที่ชี้ไปยังเอเจนต์รันไทม์ JaCoCo ที่สามารถส่งผ่านเป็นอาร์กิวเมนต์ VM ไปยังแอปพลิเคชันที่อยู่ระหว่างการทดสอบ ขึ้นอยู่กับชนิดแพ็กเกจโปรเจ็กต์โดยค่าเริ่มต้นคุณสมบัติที่มีชื่อต่อไปนี้ถูกตั้งค่า:

  • tycho.testArgLine สำหรับประเภทบรรจุภัณฑ์ eclipse-test-plugin และ
  • อาร์กิวเมนต์เป็นอย่างอื่น

โปรดทราบว่าคุณสมบัติเหล่านี้ต้องไม่ถูกเขียนทับโดยคอนฟิกูเรชันการทดสอบมิฉะนั้นจะไม่สามารถแนบเอเจนต์ JaCoCo ได้ หากคุณต้องการพารามิเตอร์ที่กำหนดเองโปรดต่อท้าย ตัวอย่างเช่น:

<argLine>${argLine} -your -extra -arguments</argLine>

ข้อมูลความครอบคลุมผลลัพธ์จะถูกรวบรวมระหว่างการดำเนินการและโดยค่าเริ่มต้นจะถูกเขียนลงในไฟล์เมื่อกระบวนการสิ้นสุดลง

คุณควรเปลี่ยนบรรทัดต่อไปนี้ในmaven-surefire-pluginการกำหนดค่าปลั๊กอินจาก (สังเกต${argLine}ด้านใน<argLine>):

<argLine>-Xmx2048m</argLine>

ถึง

<argLine>${argLine} -Xmx2048m</argLine>

ทำการเปลี่ยนแปลงที่จำเป็นกับปลั๊กอินอื่น ๆmaven-failsafe-pluginและแทนที่สิ่งต่อไปนี้ (สังเกตอีกครั้ง${argLine}):

<argLine>-Xmx4096m -XX:MaxPermSize=512M ${itCoverageAgent}</argLine>

ถึง

<argLine>${argLine} -Xmx4096m -XX:MaxPermSize=512M ${itCoverageAgent}</argLine>

แม้ว่าตอนนี้จะมีปัญหานี้หากไม่มีเป้าหมายจาโคโคการสร้างก็ล้มเหลว
Andreas

ใช้งานได้ แต่ฉันต้องใช้ tycho.testArgLine เนื่องจากฉันใช้ tycho
Raffi Khatchadourian

1
ตอนนี้ลิงค์ที่ยกมามีคำแนะนำที่แตกต่างออกไป@{argLine}เล็กน้อย
Slava Semushin

2
นี่คือปัญหาของฉัน mvn clean package sonar:sonar -U -DargLine="-Dxxx=yyy"ผมมีข้อโต้แย้งคำสั่งที่กำหนดเองใน mvn ฉันไม่ได้ประกาศ maven-surefire-plugin อย่างชัดเจนและตั้งค่าการกำหนดค่า ฉันแค่เพิ่มตัวยึด argLine ในบรรทัดคำสั่ง maven เช่น mvn clean package sonar:sonar -U -DargLine="@{argLine} -Dxxx=yyy". ตอนนี้ไฟล์ jacoco.exec ถูกสร้างขึ้นและรายงานความครอบคลุมถูกสร้างขึ้นในโซนาร์
RenatoIvancic

1
มันได้ผล !!! ปัญหาเกิดจากการกำหนดค่า <argLine> ที่ฉันเพิ่มใน maven-surefire-plugin เพื่อเพิ่มหน่วยความจำสำหรับการทดสอบการรวมการกำหนดค่า <argLine> $ {argLine} --my - additional-arguments - here - </ argLine > แก้ไขปัญหา
Massimo Da Ros

23

ฉันประสบปัญหาอื่นเล็กน้อยซึ่งส่งคืนข้อผิดพลาดเดียวกัน

Skipping JaCoCo execution due to missing execution data /target/jacoco.exec

ความจริงก็คือข้อผิดพลาดนี้จะถูกส่งกลับด้วยเหตุผลหลายประการ เราได้ทดลองใช้โซลูชันต่างๆใน Stack Overflow แต่พบว่าทรัพยากรนี้ดีที่สุด มันทำให้เหตุผลที่เป็นไปได้หลายประการที่ทำให้ Jacoco อาจส่งคืนข้อผิดพลาดเดียวกัน

สำหรับเราวิธีแก้ปัญหาคือการเพิ่มตัวแทนการเตรียมการในการกำหนดค่า

<execution>
   <id>default-prepare-agent</id>
   <goals>
       <goal>prepare-agent</goal>
   </goals>
</execution>

ฉันคิดว่าผู้ใช้ส่วนใหญ่จะประสบปัญหานี้ด้วยเหตุผลที่แตกต่างกันดังนั้นลองดูแหล่งข้อมูลข้างต้น!


2
ฉันคิดว่าคุณตอกมัน ผู้คนอาจใช้ Google เพื่อ "แก้ไขด่วน" แต่คำตอบที่ถูกต้องที่สุดคือ "ความจริงก็คือข้อผิดพลาดนี้จะถูกส่งกลับมาจากหลายสาเหตุหลายประการ" เพียงแค่ต้องหาว่ามันคืออะไร สำหรับฉันมันเป็น parent pom ที่เขียนทับ <argLine> ในปลั๊กอิน maven-surefire-plugin
tuan.dinh

นี้! ขอบคุณ ฉันได้รับข้อความเดียวกัน แต่เป็นเพราะปลั๊กอิน Surefire ของฉันกำลังมองหาไฟล์ที่ตั้งชื่อ**/*Test.javaเมื่อชั้นเรียนทดสอบของฉันเท่านั้น*Tests.java
Roger Worrell

ฉันมีปัญหาสองอย่างคือ 1. ไม่มีคลาสทดสอบใด ๆ ต้องการอย่างน้อยหนึ่ง*Test.javaคลาสและวิธีการทดสอบหนึ่งวิธีที่มีคำอธิบายประกอบ@Testเพื่อให้ Jacoco สามารถทำบางสิ่งได้ 2. ในเทรวิสตัวแปรสภาพแวดล้อมสำหรับโครงการของฉันได้พิมพ์ผิดในSONART_TOKEN=*****, SONAR_TOKEN=*****ควรจะได้รับการตั้งชื่อ ดูเอกสารเทรวิสที่นี่or define SONAR_TOKEN in your Repository Settingsค้นหา หลังจากที่ฉันแก้ไขแล้วบิลด์รันสำเร็จ คุณสามารถดูโครงการ gitbhub ของฉันที่เป็นปัญหาได้
Jose Quijada

16

อาจมีบางกรณีที่การตั้งค่า argline อื่น ๆ หรือปลั๊กอินใน pom อาจลบล้างการตั้งค่าคำสั่งการดำเนินการ jacoco

ArgLine ตั้งค่าเป็น -javaagent:/Users/davea/.m2/repository/org/jacoco/org.jacoco.agent/0.6.2.201302030002/org.jacoco.agent-0.6.2.201302030002-runtime.jar=destfile=/Users/davea/Dropbox/workspace/myproject/target/jacoco.exec

หนึ่งในตัวอย่าง

           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.16</version>
                <configuration>
                    <forkCount>5</forkCount>
                    <reuseForks>true</reuseForks>
                    <argLine>-Dnet.sf.ehcache.disabled=true</argLine>
                </configuration>
            </plugin>

หลังจากกำจัด argLine จากปลั๊กอินเหล่านี้ jacoco ก็เริ่มทำงานตามปกติ


แก้ไขปัญหาของฉัน จุดเยี่ยม!
user1974753

13

นอกจากนี้ยังสามารถรับข้อผิดพลาด "การข้ามการดำเนินการ JaCoCo เนื่องจากไฟล์ข้อมูลการดำเนินการหายไป" เนื่องจากไม่มีการทดสอบในโครงการ ตัวอย่างเช่นเมื่อคุณเริ่มโครงการใหม่และไม่มีไฟล์ * Test.java เลย


5

F สิ่งที่ tdrury พูด:

เปลี่ยนการกำหนดค่าปลั๊กอินของคุณเป็นสิ่งนี้:

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.6.3.201306030806</version>
    <executions>
      <!-- prepare agent for measuring integration tests -->
      <execution>
        <id>prepare-integration-tests</id>
        <phase>pre-integration-test</phase>
        <goals>
          <goal>prepare-agent</goal>
        </goals>
        <configuration>
          <destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile>
        </configuration>
      </execution>
      <execution>
        <id>jacoco-site</id>
        <phase>post-integration-test</phase>
        <goals>
          <goal>report</goal>
        </goals>
        <configuration>
          <dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile>
        </configuration>
      </execution>
    </executions>
  </plugin>

แก้ไข: เพิ่งสังเกตเห็นสิ่งสำคัญอย่างหนึ่ง destFile และ dataFile ดูเหมือนว่าจะมีความละเอียดอ่อนดังนั้นจึงควรเป็น destFile ไม่ใช่ destfile


5

ฉันรู้ว่าคำถามนี้ค่อนข้างเก่า แต่ถ้ามีคนอย่างฉันมาที่นี่เพื่อหาคำตอบนี่อาจช่วยได้ ฉันสามารถเอาชนะข้อผิดพลาดข้างต้นได้ด้วยสิ่งนี้

1) ลบโค้ดด้านล่างออกจากปลั๊กอิน maven-surefire-plugin

 <reuseForks>true</reuseForks>
 <argLine>-Xmx2048m</argLine>

2) เพิ่มเป้าหมายด้านล่าง:

<execution>
<id>default-prepare-agent</id>
<goals>
   <goal>prepare-agent</goal>
</goals>
</execution>

3

เพิ่งเจอปัญหาเดียวกันนี้

ฉันมีชื่อชั้นเรียนHelloWorldและฉันสร้างคลาสทดสอบสำหรับชื่อHelloWorldTestsนั้นจากนั้นฉันก็ได้ผลลัพธ์Skipping JaCoCo execution due to missing execution data file.

จากนั้นฉันก็พยายามที่จะเปลี่ยนไฟล์ pom.xmlเพื่อให้ใช้งานได้ แต่ความพยายามล้มเหลว

ในที่สุดฉันก็เปลี่ยนชื่อHelloWorldTestsเป็นHelloWorldTestและใช้งานได้!

ดังนั้นฉันเดาว่าโดยค่าเริ่มต้น , jacoco เพียงตระหนักถึงระดับการทดสอบเช่นชื่อซึ่งบ่งชี้ว่ามันเป็นระดับการทดสอบสำหรับXxxTest Xxxดังนั้นเพียงแค่เปลี่ยนชื่อชั้นเรียนทดสอบของคุณเป็นรูปแบบนี้ก็น่าจะใช้ได้!


2

ฉันได้ลองคำตอบทั้งหมดแล้ว แต่มีเพียงคำแนะนำต่อไปนี้เท่านั้นที่ใช้ได้ผลสำหรับฉัน ทำไม? ฉันมีข้อกำหนดที่เฉพาะเจาะจงมาก:

  1. JaCoCo สร้างรายงานเมื่อบิลด์ถูกเรียกใช้จากบรรทัดคำสั่ง: mvn clean verify (Maven 3.6.0)
  2. Intellij IDEA (2019.01) เรียกใช้การทดสอบของฉันด้วย
  3. ทุกอย่างทำงานต่อหน้าปลั๊กอินอื่นที่javaagentกำหนดไว้surefire

วิธีแก้ไข - argLineเพิ่มค่าในsurefireการกำหนดค่าด้วยคุณสมบัติ maven "late replacement" @{...}ตามที่อธิบายไว้ในsurefire FAQ ( การกำหนดค่าคงที่ของฉัน )

ฉันจะใช้คุณสมบัติที่ตั้งค่าโดยปลั๊กอินอื่น ๆ ใน argLine ได้อย่างไร Maven เปลี่ยนคุณสมบัติให้

$ {... } ค่าใน pom.xml ก่อนที่จะเรียกใช้ปลั๊กอินใด ๆ ดังนั้น Surefire จะไม่เห็นตัวยึดตำแหน่งในคุณสมบัติ argLine ตั้งแต่เวอร์ชัน 2.17 โดยใช้ไวยากรณ์ทางเลือกสำหรับคุณสมบัติเหล่านี้

@ {... } อนุญาตให้เปลี่ยนคุณสมบัติล่าช้าเมื่อเรียกใช้ปลั๊กอินดังนั้นคุณสมบัติที่แก้ไขโดยปลั๊กอินอื่น ๆ จะถูกเลือกอย่างถูกต้อง

การลองครั้งแรกล้มเหลว - กำหนดคุณสมบัติjaCoCoArgLineในprepare-agentการกำหนดค่าเป้าหมายของjacoco- สถานการณ์ล้มเหลวข้อกำหนดที่สองของฉัน IntelliJ IDEA ไม่สามารถหาตัวแทนสำหรับ jmockit ที่ฉันใช้ในโปรเจ็กต์สำหรับการเยาะเย้ยเมธอดแบบคงที่


ประสบปัญหาเดียวกันเมื่อใช้กับ JMockit และสามารถแก้ไขปัญหาได้ด้วยวิธีนี้ เช่นการเพิ่ม argLine ในปลั๊กอิน surefire
Karthik Rao

1

ฉันได้เพิ่มโปรเจ็กต์ Maven / Java ที่มีคลาสโดเมน 1 รายการพร้อมคุณสมบัติดังต่อไปนี้:

  • การทดสอบหน่วยหรือการรวมกับปลั๊กอิน Surefire และ Failsafe
  • FindBugs
  • ครอบคลุมการทดสอบผ่านJacoco

ผลลัพธ์ของ Jacoco อยู่ที่ไหน หลังจากทดสอบและเรียกใช้ 'mvn clean' คุณจะพบผลลัพธ์ใน 'target / site / jacoco / index.html' เปิดไฟล์นี้ในเบราว์เซอร์

สนุก!

ฉันพยายามทำให้โครงการเรียบง่ายที่สุด โครงการนำคำแนะนำมากมายจากโพสต์เหล่านี้มารวมกันในโครงการตัวอย่าง ขอบคุณผู้ให้ข้อมูล!


ฉันลองโครงการคอมไพล์ของคุณแล้ว แต่ไม่ชัดเจนว่าจะดูรายงานได้อย่างไร
Nagaraj Vittal

ผลลัพธ์ของ Jacoco อยู่ที่ไหน หลังจากทดสอบและเรียกใช้ 'mvn clean' คุณจะพบผลลัพธ์ใน 'target / site / jacoco / index.html' เปิดไฟล์นี้ในเบราว์เซอร์
tm1701

คุณอาจต้องการเชื่อมโยงที่เก็บของคุณกลับไปที่ stackoverflow ฉันมีปัญหาในการค้นหาคำถามอีกครั้งหลังจากพบข้อบกพร่องในการสาธิตของคุณ
Wolfgang Fahl

และยังไม่ทำงานตามที่คาดไว้ :-( ไดเร็กทอรีเป้าหมายมีเฉพาะ aggregate.exec เนื่องจากเป็นเนื้อหาเมื่อทำการติดตั้ง mvn ใหม่ทั้งหมด ...
Wolfgang Fahl

1

ฉันดิ้นรนอยู่หลายวัน ฉันลองใช้การกำหนดค่าต่างๆที่แนะนำในชุดข้อความนี้แล้ว ไม่มีการทำงานใด ๆ ในที่สุดฉันพบเพียงการกำหนดค่าที่สำคัญคือเป้าหมายของผู้จัดเตรียม แต่คุณต้องวางไว้ในระยะที่เหมาะสม ฉันเห็นตัวอย่างมากมายที่ใส่ไว้ใน " การทดสอบก่อนการรวมระบบ " นั่นเป็นการทำให้เข้าใจผิดเนื่องจากจะดำเนินการหลังจากการทดสอบหน่วยเท่านั้น ดังนั้นการทดสอบหน่วยจะไม่เป็นเครื่องมือ

การกำหนดค่าที่ถูกต้องควรใช้เฟสเริ่มต้น (อย่าระบุเฟสอย่างชัดเจน) และมักจะคุณไม่จำเป็นต้องมวลรอบMaven-แหงปลั๊กอิน

  <plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.8.4</version>
    <executions>
      <execution>
        <id>default-prepare-agent</id>
        <goals>
          <goal>prepare-agent</goal>
        </goals>
      </execution>
      <execution>
        <id>jacoco-site</id>
        <phase>post-integration-test</phase>
        <goals>
          <goal>report</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

0

การดำเนินการระบุว่ากำลังวางข้อมูล jacoco ไว้ใน /Users/davea/Dropbox/workspace/myproject/target/jacoco.exec แต่การกำหนดค่า maven ของคุณกำลังค้นหาข้อมูลใน $ {basedir} / target / coverage-reports / jacoco-unit exec


1
ใช่แล้วเหตุใดปลั๊กอินจึงเพิกเฉยต่อสิ่งที่ฉันระบุในการกำหนดค่า
Dave

ลองย้ายคอนฟิกูเรชันเดสติไฟล์ของคุณไปยังคอนฟิกูเรชันของการเรียกใช้เอเจนต์ ปลั๊กอิน maven ทั้งหมดไม่ได้จัดการกับการสืบทอดการกำหนดค่าอย่างสง่างาม
tdrury

0

การตอบกลับของฉันช้ามาก แต่สำหรับผู้ใช้รายอื่นในกรณีของคุณคุณต้องกำหนดค่าการเสียบ failafe เพื่อใช้การกำหนดค่าตัวแทนบรรทัดคำสั่งที่บันทึกไว้ในตัวแปร itCoverageAgent สำหรับตัวอย่าง

<configuration>
    <argLine>${itCoverageAgent}</argLine>
</configuration>

ในคอนฟิกูเรชัน maven ของคุณ jacoco เตรียมอาร์กิวเมนต์บรรทัดคำสั่งในเฟสเตรียมตัวแทน แต่ปลั๊กอินที่ไม่ปลอดภัยไม่ได้ใช้ดังนั้นจึงไม่มีไฟล์ข้อมูลการดำเนินการ


0

ลองใช้:

mvn jacoco:report -debug

เพื่อดูรายละเอียดเกี่ยวกับกระบวนการรายงานของคุณ

ฉันกำหนดค่าจาโคโคของฉันดังนี้:

<configuration>
    <dataFile>~/jacoco.exec</dataFile>
    <outputDirectory>~/jacoco</outputDirectory>
</configuration>

จากนั้นmvn jacoco:report -debugแสดงโดยใช้การกำหนดค่าเริ่มต้นซึ่งหมายความว่าjacoco.execไม่มีอยู่ใน~/jacoco.execไม่ได้อยู่ในข้อผิดพลาดแจ้งว่าmissing execution data fileข้อผิดพลาดที่กล่าวว่า

ดังนั้นเพียงใช้การกำหนดค่าเริ่มต้น:

<execution>
    <id>default-report</id>
    <goals>
    </goals>
    <configuration>
        <dataFile>${project.build.directory}/jacoco.exec</dataFile>
        <outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory>
    </configuration>
</execution>

และทุกอย่างทำงานได้ดี


0

บางครั้งการดำเนินการจะทำงานเป็นครั้งแรกและเมื่อเราทำการติดตั้ง maven clean ก็จะไม่สร้างขึ้นหลังจากนั้น ปัญหานี้ใช้ true สำหรับคุณสมบัติ skipMain และข้ามภายใต้ maven-compiler-plugin ของไฟล์ pom หลัก ลบออกหากมีการนำมาใช้เป็นส่วนหนึ่งของปัญหาหรือข้อเสนอแนะ


0

ในกรณีของฉันเอเจนต์จัดเตรียมมีการdestFileกำหนดค่าที่แตกต่างกันแต่ดังนั้นรายงานจึงต้องถูกกำหนดค่าด้วย a dataFileแต่การกำหนดค่านี้หายไป เมื่อdataFileเพิ่มเข้าไปแล้วมันก็เริ่มทำงานได้ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.