জ্যাকোকো কার্যকর করার পরে "এক্সিকিউশন ডেটা ফাইল অনুপস্থিত কারণে জ্যাকোকো এক্সিকিউশন এড়িয়ে যাওয়া" পাওয়া


123

আমি ম্যাভেন 3.0.3, জুনিট 4.8.1, এবং জ্যাকো 0.6.3.201306030806 ব্যবহার করছি এবং আমি পরীক্ষার কভারেজ রিপোর্ট তৈরির চেষ্টা করছি।

আমার কেবল ইউনিট টেস্ট সহ একটি প্রকল্প রয়েছে, তবে আমি চালানোর জন্য প্রতিবেদন পেতে পারি না, আমি বারবার ত্রুটিটি পেয়ে যাচ্ছি: Skipping JaCoCo execution due to missing execution data fileযখন আমি চালনা করি:

mvn clean install -P test-coverage

আমার পোমটি কীভাবে কনফিগার করা হয়েছে তা এখানে:

<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>

আমার সমস্ত পরীক্ষা সফলভাবে চলমান। মাভেনের কিছু আউটপুট এখানে:

[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এটি থেকে সরিয়ে এনে এটি ডিফল্ট টার্গেট / জ্যাকোকো.এক্সেক ফাইলটিতে লিখতে দেই।
মার্কহু

আমি এই জায়গায় উত্তর পোস্ট করেছি ।
শিবকুমার কাটিক্বর

উত্তর:


134

jacoco-ম্যাভেন-plugin: 0.7.10-স্ন্যাপশট

জ্যাকো থেকে : প্রস্তুত এজেন্ট যা বলেছেন:

ম্যাভেন-শিফারফায়ার-প্লাগইনের ক্ষেত্রে এটি করার একটি উপায় - বিলম্বিত সম্পত্তি মূল্যায়নের জন্য সিনট্যাক্স ব্যবহার করা:

<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

পরিবর্তনটি লক্ষ্য করে এবং মন্তব্যে প্রতিবেদন করার জন্য ধন্যবাদ স্লাভা সেমুশিনকে

jacoco-ম্যাভেন-plugin: 0.7.2-স্ন্যাপশট

নিম্নলিখিত জ্যাকো: রেডি-এজেন্ট যা বলেছেন:

[org.jacoco: জ্যাকো-ম্যাভেন-প্লাগইন: 0.7.2-এসএনএপিএসএইচটি: রেডি-এজেন্ট] জ্যাকোকো রানটাইম এজেন্টকে নির্দেশ করে একটি সম্পত্তি প্রস্তুত করে যা পরীক্ষার অধীনে আবেদনের ভিএম যুক্তি হিসাবে পাস হতে পারে। প্রকল্পের প্যাকেজিংয়ের উপর নির্ভর করে ডিফল্টরূপে নিম্নলিখিত নামের একটি সম্পত্তি সেট করা হয়:

  • tycho.testArgLine প্যাকেজিং প্রকারের জন্য গ্রহ-পরীক্ষা-প্লাগইন এবং
  • অন্যথায় আরগলাইন।

নোট করুন যে এই বৈশিষ্ট্যগুলি অবশ্যই পরীক্ষা কনফিগারেশনের মাধ্যমে ওভাররাইট করা উচিত নয়, অন্যথায় জ্যাকোকো এজেন্ট সংযুক্ত করা যাবে না। আপনার যদি কাস্টম প্যারামিটারগুলির প্রয়োজন হয় তবে দয়া করে সেগুলি যুক্ত করুন। উদাহরণ স্বরূপ:

<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>

এখন যদিও, জ্যাকোকো লক্ষ্য ছাড়াই এই সমস্যাটি রয়েছে, বিল্ডটি ব্যর্থ হয়।
অ্যান্ড্রিয়াস

জন্য কাজ করেছেন তবে আমি যেহেতু টাইকো ব্যবহার করছি তাই আমাকে টাইকো.টেস্টআর্গলাইন ব্যবহার করতে হয়েছিল।
রাফি খ্যাচাডৌড়িয়ান

1
উদ্ধৃত লিঙ্কটিতে এখন ব্যবহারের জন্য কিছুটা আলাদা পরামর্শ রয়েছে @{argLine}
স্লাভা সেমুশিন

2
ঠিক এটা আমার সমস্যা ছিল। এমভিএন কমান্ডে আমার কাস্টম যুক্তি ছিল mvn clean package sonar:sonar -U -DargLine="-Dxxx=yyy"। আমি মেভেন-শিফারফায়ার-প্লাগইন স্পষ্টভাবে ঘোষণা করছি না এবং কনফিগারেশনগুলি সেট করছি। আমি কেবল মার্ভেন কমান্ড লাইনে আরগলাইন প্লেসোল্ডার যুক্ত করি mvn clean package sonar:sonar -U -DargLine="@{argLine} -Dxxx=yyy"। এখন জ্যাকোকো.এক্সেক ফাইল তৈরি হয় এবং সোনারে কভারেজ রিপোর্ট উত্পন্ন হয়।
রেনাটোআইভান্সিক

1
এটি কাজ করে !!! ইন্টিগ্রেশন পরীক্ষার জন্য মেমরি বাড়াতে <argLine> $ <argLine} - মাই - অতিরিক্ত-যুক্তি - এখানে - </ argLine কনফিগার করার কারণে সমস্যাটি <argLine> কনফিগারেশনের কারণে হয়েছিল > সমস্যার সমাধান করেছেন
ম্যাসিমো দা রোজ

23

আমি কিছুটা ভিন্ন সমস্যার মুখোমুখি হয়েছি যা একই ত্রুটি ফিরে পেয়েছিল।

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

সত্যটি হচ্ছে, এই ত্রুটিটি বহু কারণে, বহু কারণে ফিরে আসে। স্ট্যাক ওভারফ্লোতে আমরা বিভিন্ন সমাধান নিয়ে পরীক্ষা-নিরীক্ষা করেছি, তবে এই সংস্থানটি সর্বোত্তম বলে খুঁজে পেয়েছি । জ্যাকোকো একই ত্রুটিটি কেন ফিরিয়ে আনতে পারে তার বিভিন্ন বিভিন্ন সম্ভাব্য কারণে এটি ডুবে যায়।

আমাদের জন্য, সমাধানটি ছিল কনফিগারেশনে একটি প্রস্তুতি-এজেন্ট যুক্ত করা।

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

আমি কল্পনা করব যে বেশিরভাগ ব্যবহারকারীর বিভিন্ন কারণে এটি ব্যবহার করা হবে, তাই পূর্বোক্ত সংস্থানগুলি একবার দেখুন!


2
আমি মনে করি আপনি এটি পেরেক দিয়েছিলেন। লোকেরা এটি "দ্রুত সমাধানের" জন্য গুগল করতে পারে তবে সবচেয়ে সঠিক উত্তরটি হ'ল "সত্য, এই ত্রুটিটি বহু কারণে, বহু কারণে ফিরে আসে"। এটি কী তা সন্ধান করতে হবে। আমার জন্য, এটি মাভেন-শিফারফায়ার-প্লাগইনে <argLine> ওভাররাইট করে পিতামাতার পম।
tuan.dinh

এই! ধন্যবাদ। আমি একই বার্তাটি পেয়েছি, তবে এটি হ'ল কারণ আমার নিশ্চিত ফায়ার প্লাগইন কেবলমাত্র **/*Test.javaআমার পরীক্ষার ক্লাসগুলির নামকরণের সময় ফাইলগুলির সন্ধান করছিল*Tests.java
রজার ওয়ার্লেল

আমার দুটি সমস্যা ছিল: ১. কোনও পরীক্ষার ক্লাস যাই হোক না কেন, কমপক্ষে একটি *Test.javaক্লাসের প্রয়োজন, এবং একটি পরীক্ষার পদ্ধতিতে বর্ণিত @Testযাতে জ্যাকো কিছু করতে পারে। 2. আমার প্রকল্পের ট্র্যাভিস এনভায়রনমেন্ট ভেরিয়েবলের SONART_TOKEN=*****নাম টাইপ করা উচিত ছিল SONAR_TOKEN=*****। ট্র্যাভিস ডক্সটি এখানে দেখুন , অনুসন্ধান করুন or define SONAR_TOKEN in your Repository Settings। আমি এটি স্থির করার পরে, বিল্ডটি সফলভাবে চলল। আপনি আমার gitbhub প্রকল্পটি প্রশ্নে দেখতে পারেন
হোসে কুইজাদা

15

এমন কোনও ক্ষেত্রে হতে পারে যেখানে পোমের মধ্যে অন্য কোনও আরগলাইন সেটআপ বা প্লাগইন জ্যাকোকো এক্সিকিউশন অর্ডার সেটআপকে ওভাররাইড করে।

আরগলাইন সেট -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>

এই প্লাগইনগুলি থেকে আরগলাইন থেকে মুক্তি পাওয়ার পরে জ্যাকোকো স্বাভাবিকভাবে কাজ শুরু করে।


আমার সমস্যার সমাধান। দুর্দান্ত স্পট!
ব্যবহারকারী 1974753

13

প্রকল্পে পরীক্ষাগুলি নিখোঁজ হওয়ার কারণে কেউ "এক্সিকিউশন ডেটা ফাইলের কারণে জ্যাকোকো এক্সিকিউশন স্কিপিং" পেতে পারেন। উদাহরণস্বরূপ আপনি যখন নতুন প্রকল্প চালু করেন এবং কোনও টেস্ট.জভা ফাইল নেই।


5

এফ ডাব্লু টুডুরি কী বলেছেন:

এতে আপনার প্লাগইন কনফিগারেশনটি পরিবর্তন করুন:

<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>

সম্পাদনা: সবেমাত্র একটি গুরুত্বপূর্ণ বিষয় লক্ষ্য করা গেছে, ডেসটফিল এবং ডেটাফিল কেস সংবেদনশীল বলে মনে হচ্ছে সুতরাং এটি ডেসটফিল নয়, ডেসটফিল নয়।


5

আমি জানি এই প্রশ্নটি বেশ পুরানো তবে আমার মতো যদি কেউ এখানে উত্তর খোঁজার জন্য আসে তবে এটি হয়ত সাহায্য করবে। আমি এটি দিয়ে উপরের ত্রুটিটি কাটিয়ে উঠতে সক্ষম হয়েছি।

1) প্লাগইন মাভেন-শিফারফায়ার-প্লাগইন থেকে নীচের কোডের টুকরোটি সরান

 <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, এবং এটা কাজ!

সুতরাং আমি অনুমান করি যে, ডিফল্টরূপে , জ্যাকোকো কেবলমাত্র পরীক্ষার শ্রেণিকে স্বীকৃতি XxxTestদেয় যা ইঙ্গিত করে যে এটি পরীক্ষার শ্রেণি Xxx। সুতরাং এই ফর্ম্যাটটিতে কেবল আপনার পরীক্ষার ক্লাসগুলির নাম বদলে রাখা উচিত!


2

আমি সমস্ত উত্তর চেষ্টা করেছি কিন্তু নিম্নলিখিত নীচের পরামর্শের মিশ্রণটি আমার পক্ষে কাজ করেছে। কেন? আমার খুব নির্দিষ্ট প্রয়োজনীয়তা ছিল:

  1. কমান্ড লাইন থেকে বিল্ড চালানো হলে জ্যাকোকো প্রতিবেদন তৈরি করে: mvn clean verify(ম্যাভেন 3.6.0)
  2. ইন্টেলিজ আইডিইএ (2019.01) এছাড়াও আমার পরীক্ষা চালায়
  3. এটি সমস্ত প্লাগইনে javaagentসংজ্ঞায়িত অন্যটির উপস্থিতিতে কাজ করেsurefire

সমাধান - এফএকিউ ( আমার স্থির কনফিগারেশন ) এ বর্ণিত হিসাবে "দেরী প্রতিস্থাপন" মাভেন সম্পত্তি সহ কনফিগারেশনের argLineমান surefireপূর্ববর্তী করুন@{...}surefire

আরগলাইনে অন্য প্লাগইনগুলির দ্বারা সেট করা বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করব? মাভেন এর জন্য সম্পত্তি প্রতিস্থাপন করে

কোনও প্লাগইন চালুর আগে om {...} pom.xML এর মান। সুতরাং শিফারফায়ার আরগলাইন সম্পত্তিতে স্থানধারককে কখনই দেখতে পাবে না। সংস্করণ ২.১17 এই বৈশিষ্ট্যগুলির জন্য একটি বিকল্প সিনট্যাক্স ব্যবহার করে,

@ {...} প্লাগইন সম্পাদনকালে বৈশিষ্ট্যগুলি দেরীতে প্রতিস্থাপনের অনুমতি দেয়, সুতরাং অন্যান্য প্লাগইনগুলির মাধ্যমে সংশোধিত বৈশিষ্ট্যগুলি সঠিকভাবে তোলা হবে।

ব্যর্থ প্রথম চেষ্টা - এর লক্ষ্য কনফিগারেশনে জ্যাকোকোআরগলাইন সম্পত্তি সংজ্ঞায়িত করুন - দৃশ্যটি আমার দ্বিতীয় প্রয়োজনে ব্যর্থ হয়েছে, ইন্টেলিজ আইডিইএ স্ট্যাটিক পদ্ধতি উপহাসের জন্য প্রজেক্টে আমি jmockit ব্যবহার করার জন্য এজেন্ট খুঁজে বের করতে পারিনিprepare-agentjacoco


JMockit এর সাথে ব্যবহার করার সময় একই সমস্যার মুখোমুখি হয়েছিল এবং এই সমাধানটি দিয়ে সমস্যাটি সমাধান করতে সক্ষম হয়েছিল। অর্থাত্ নিশ্চিতফায়ার প্লাগইনে আরগলাইন যুক্ত করা
কার্তিক রাও

1

আমি নিম্নলিখিত বৈশিষ্ট্য সহ 1 ডোমেন ক্লাস সহ একটি মাভেন / জাভা প্রকল্প যুক্ত করেছি :

  • শিওরফায়ার এবং ফেইলসেফ প্লাগইনগুলির সাথে ইউনিট বা একীকরণের পরীক্ষা
  • Findbugs।
  • জ্যাকোকোর মাধ্যমে টেস্ট কভারেজ ।

জ্যাকোকোর ফলাফল কোথায়? 'এমভিএন ক্লিন' পরীক্ষা করে চালানোর পরে, আপনি 'টার্গেট / সাইট / জ্যাকো / ইনডেক্স html' এ ফলাফলগুলি খুঁজে পেতে পারেন। এই ফাইলটি ব্রাউজারে খুলুন।

উপভোগ করুন!

আমি প্রকল্পটি যতটা সম্ভব সহজ করার চেষ্টা করেছি। প্রকল্পটি এই পোস্টগুলি থেকে অনেকগুলি পরামর্শ উদাহরণ উদাহরণে এক সাথে রাখে। ধন্যবাদ, অবদানকারী!


আমি আপনার গিট প্রকল্প চেষ্টা করেছিলাম তবে কীভাবে রিপোর্টটি দেখতে হবে তা পরিষ্কার নয়।
নাগরাজ ভিট্টল

জ্যাকোকোর ফলাফল কোথায়? 'এমভিএন ক্লিন' পরীক্ষা করে চালানোর পরে, আপনি 'টার্গেট / সাইট / জ্যাকো / ইনডেক্স html' এ ফলাফলগুলি খুঁজে পেতে পারেন। এই ফাইলটি ব্রাউজারে খুলুন।
tm1701

আপনি আপনার স্টোরওভারফ্লোতে পুনরায় সংগ্রহস্থলটি লিঙ্ক করতে চাইতে পারেন। আপনার ডেমোতে একটি বাগ খুঁজে পাওয়ার পরে আবার প্রশ্নটি খুঁজতে আমার বেশ কষ্ট হয়েছিল।
ওল্ফগ্যাং ফাহল

আর এখনও কাজ করে আশানুরূপ :-( গন্তব্যের ডিরেক্টরি যখন mvn পরিষ্কার ইনস্টল করছেন শুধু এটা বিষয়বস্তু যেমন aggregate.exec আছে ...
উলফগ্যাং Fahl

1

আমি অনেক দিন লড়াই করেছি। আমি এই থ্রেডে প্রস্তাবিত সমস্ত ভিন্ন কনফিগারেশন চেষ্টা করেছি। তাদের কোনওটিই কাজ করে না। অবশেষে, আমি কেবল গুরুত্বপূর্ণ কনফিগারেশনটিই প্রস্তুত-এজেন্ট লক্ষ্য। তবে আপনাকে এটি সঠিক পর্যায়ে রাখতে হবে। আমি দেখেছি অনেক উদাহরণ এটিকে " প্রাক-সংহতকরণ-পরীক্ষায় " রেখেছিল, এটি একটি বিভ্রান্তিকর, কারণ এটি কেবল ইউনিট পরীক্ষার পরে কার্যকর করা হবে। সুতরাং ইউনিট পরীক্ষাটি চালিত হবে না।

ডান কনফিগারেশনটি কেবলমাত্র ডিফল্ট পর্বটি ব্যবহার করা উচিত (স্পষ্টভাবে ফেজটি নির্দিষ্ট করে দেবেন না)। এবং সাধারণত, আপনাকে ম্যাভেন-শিফারফায়ার-প্লাগইন জুড়ে ভর করতে হবে না ।

  <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

নির্বাহটি বলছে এটি জ্যাকো ডেটা / ইউজারস / ডেভা / ড্রপবক্স / ওয়ার্কস্পেস / মাইপ্রোজেক্ট / স্টেটজেট / জ্যাকোকো.এক্সেক-তে রাখে তবে আপনার মেভেন কনফিগারেশনটি {{ভিত্তিক} / লক্ষ্য / কভারেজ-রিপোর্ট / জ্যাকো-ইউনিটে ডেটা সন্ধান করছে। Exec।


1
ঠিক আছে, সুতরাং প্লাগইনটি কনফিগারেশনের ক্ষেত্রে আমি যা নির্দিষ্ট করে তা উপেক্ষা করছে?
ডেভ

আপনার ডেস্টফিল কনফিগারেশনটিকে প্রস্তুতি-এজেন্ট কার্যকর করার কনফিগারেশনে সরানোর চেষ্টা করুন। সমস্ত মেভেন প্লাগইন কৃপণভাবে কনফিগারেশন উত্তরাধিকার পরিচালনা করে না।
tdrury

0

আমার প্রতিক্রিয়াটি অনেক দেরিতে তবে অন্য ব্যবহারকারীদের ক্ষেত্রে আপনার ক্ষেত্রে কভারেজএজেন্ট ভেরিয়েবলে সংরক্ষিত কমান্ড লাইন এজেন্ট কনফিগারেশনটি ব্যবহার করতে আপনাকে ব্যর্থ সাফ প্লাগিং কনফিগার করতে হবে। উদাহরণ স্বরূপ

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

আপনার মাভেন কনফিগারেশনে জ্যাকোকো প্রস্তুতি-এজেন্ট পর্যায়ে কমান্ড লাইন আর্গুমেন্ট প্রস্তুত করে, তবে ব্যর্থতা ডেটা ফাইল না থাকায় ফেইলসেফ প্লাগইন এটি ব্যবহার করে না।


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 ক্লিন ইনস্টল করি তার পরে এটি উত্পন্ন হয় না। ইস্যুটি স্কিপমেইনের জন্য সত্য ব্যবহার করছিল এবং মূল পম ফাইলের ম্যাভেন-কম্পাইলার-প্লাগইনের অধীনে সম্পত্তিগুলি এড়িয়ে যায়। এগুলি যদি কোনও সমস্যা বা পরামর্শের অংশ হিসাবে পরিচয় করানো হয় তবে তাদের সরান।


0

আমার ক্ষেত্রে, প্রস্তুত এজেন্টের destFileকনফিগারেশনে আলাদা ছিল , তবে সেই অনুযায়ী প্রতিবেদনটি একটি দিয়ে dataFileকনফিগার করা হয়েছিল, তবে এই কনফিগারেশনটি অনুপস্থিত ছিল। একবার dataFileযোগ করা হয়, এটি সূক্ষ্ম কাজ শুরু।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.