logo
down
shadow

jacoco code coverage not working for Android applications


jacoco code coverage not working for Android applications

By : sn30
Date : November 21 2020, 04:01 AM
With these it helps I wrote an article a while ago about jacoco. https://github.com/uriel-frankel/android-code-coverage/ The jacoco version should change as well:
code :
apply plugin: 'jacoco'
jacoco {
   toolVersion = '0.7.5.201505241946'
}


Share : facebook icon twitter icon
Code coverage of JBoss AS 7 testsuite, using JaCoCo - no data in jacoco.exec files

Code coverage of JBoss AS 7 testsuite, using JaCoCo - no data in jacoco.exec files


By : NorbertBeaver
Date : March 29 2020, 07:55 AM
will help you Resolved - the "includes" and "excludes" parameters of the agent refer to class names, not files.
Correct JVM agent argument for my case is:
code :
-javaagent:${jbossas.ts.dir}/target/jacoco-jars/agent/jacocoagent.jar=destfile=${basedir}/target/jacoco.exec,includes=*,excludes=org.jboss.as.test.*,append=true,output=file
    <profile>
        <id>ts.jacoco.profile</id>
        <activation><property><name>coverage</name></property></activation>
        <properties>
            <jvm.args.jacoco>-javaagent:${jbossas.ts.dir}/target/jacoco-jars/agent/jacocoagent.jar=destfile=${basedir}/target/jacoco.exec,includes=*,excludes=org.jboss.as.test.*,append=true,output=file</jvm.args.jacoco>
        </properties>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${version.jacoco.plugin}</version>
                    <executions>
                        <execution><id>ts.jacoco-prepare</id>
                            <phase>process-test-classes</phase>
                            <goals><goal>prepare-agent</goal></goals>
                            <configuration>
                                <append>true</append>
                                <destFile>target/jacoco.exec</destFile>
                                <includes>
                                    <include>*</include>
                                </includes>
                                <excludes>
                                    <exclude>org.jboss.as.test.*</exclude>
                                </excludes>
                                <output>file</output>
                                <propertyName>jvm.args.jacoco</propertyName>
                            </configuration>
                        </execution>
                        <!-- Doesn't work currently - waiting for JaCoCo to fix this. Moved to the Ant plugin execution. -->
                        <execution><id>ts.jacoco.report</id>
                            <phase>none</phase> <!-- post-integration-test -->
                            <goals><goal>report</goal></goals>
                            <configuration>
                                <dataFile>target/jacoco.exec</dataFile>
                                <outputDirectory>target/coverageReport</outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <!-- Copy JaCoCo jars to have them for the Ant plugin. -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <executions>
                        <!-- Copy the ant tasks jar. Needed for ts.jacoco.report-ant . -->
                        <execution> <id>ts.jacoco.dep.ant</id> <goals><goal>copy</goal></goals> <phase>process-test-resources</phase> <inherited>false</inherited>
                            <configuration>
                                <artifactItems>
                                    <artifactItem><groupId>org.jacoco</groupId><artifactId>org.jacoco.ant</artifactId><version>${version.jacoco.plugin}</version></artifactItem>
                                </artifactItems>
                                <stripVersion>true</stripVersion>
                                <outputDirectory>${basedir}/target/jacoco-jars</outputDirectory>
                            </configuration>
                        </execution>
                        <!-- Copy the agent jar. Needed for ${jvm.args.jacoco} to have this jar on known path.
                             If the ts.jacoco-prepare worked and really put the value into the property, this might go away. -->
                        <execution> <id>ts.jacoco.dep.agent</id> <goals><goal>unpack</goal></goals> <phase>process-test-resources</phase> <inherited>false</inherited>
                            <configuration>
                                <artifactItems>
                                    <artifactItem><groupId>org.jacoco</groupId><artifactId>org.jacoco.agent</artifactId><version>${version.jacoco.plugin}</version></artifactItem>
                                </artifactItems>
                                <stripVersion>true</stripVersion>
                                <outputDirectory>${basedir}/target/jacoco-jars/agent</outputDirectory>
                            </configuration>
                        </execution>

                    </executions>
                </plugin>
                <!-- Ant plugin. -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <executions>
                        <!-- DEBUG -->
                        <execution>
                            <id>ts.jacoco.debug</id>
                            <phase>post-integration-test</phase>
                            <goals><goal>run</goal></goals>
                            <inherited>false</inherited>
                            <configuration>
                                <target>
                                    <echo>Jacoco argline: ${jvm.args.jacoco}</echo>
                                    <echo>Jacoco jar: ${basedir}/target/jacoco-jars/org.jacoco.ant.jar</echo>
                                </target>
                            </configuration>
                        </execution>
                        <!-- Must be run using Ant due to https://sourceforge.net/tracker/?func=detail&aid=3474708&group_id=177969&atid=883354 -->
                        <execution>
                            <id>ts.jacoco.report-ant</id>
                            <phase>site</phase> <!-- post-integration-test -->
                            <goals><goal>run</goal></goals>
                            <inherited>false</inherited>
                            <configuration>
                                <target>
                                    <taskdef name="report" classname="org.jacoco.ant.ReportTask">
                                        <classpath path="${basedir}/target/jacoco-jars/org.jacoco.ant.jar"/>
                                    </taskdef>
                                    <echo>Creating JaCoCo test coverage reports...</echo>
                                    <mkdir dir="${basedir}/target/coverage-report"/>
                                    <report>
                                        <executiondata>
                                            <fileset dir="${basedir}">
                                                <include name="**/target/jacoco.exec"/>
                                            </fileset>
                                        </executiondata>
                                        <structure name="AS 7 project">
                                            <classfiles>
                                                <fileset dir="${jboss.dist}/modules">
                                                    <include name="**/*.jar"/>
                                                    <!-- We have 2.x in main. -->
                                                    <exclude name="com/sun/jsf-impl/1.*/**/*"/>
                                                    <!-- AS7-3383 - com/sun/codemodel vs. /1.0/com/sun/codemodel -->
                                                    <exclude name="com/sun/xml/**/*"/>
                                                    <exclude name="javax/faces/api/1.2/**/*"/>
                                                    <!-- AS7-3390 -->
                                                    <exclude name="org/apache/commons/beanutils/**/*"/>
                                                    <!-- AS7-3389 -->
                                                    <exclude name="org/python/jython/standalone/**/*"/>
                                                </fileset>
                                            </classfiles>
                                            <sourcefiles encoding="UTF-8">
                                                <fileset dir="${jbossas.project.dir}">
                                                    <include name="**/*.java"/>
                                                    <exclude name="testsuite/**/*.java"/>
                                                </fileset>
                                            </sourcefiles>
                                        </structure>
                                        <html destdir ="${basedir}/target/coverage-report/html"/>
                                        <xml destfile="${basedir}/target/coverage-report/coverage-report.xml"/>
                                        <csv destfile="${basedir}/target/coverage-report/coverage-report.csv"/>
                                    </report>
                                </target>
                            </configuration>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>org.jacoco</groupId>
                            <artifactId>org.jacoco.ant</artifactId>
                            <version>${version.jacoco.plugin}</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>
    </profile>
How can i run Jacoco in android studio for code coverage

How can i run Jacoco in android studio for code coverage


By : user3254904
Date : March 29 2020, 07:55 AM
this will help I had the same problem running jacoco on an USB device. Using Genymotion solved the issue.
Jacoco Code Coverage in android studio

Jacoco Code Coverage in android studio


By : user3348009
Date : March 29 2020, 07:55 AM
this one helps. I see that you already got it working, however, there's a simpler method for getting Unit Test execution data. I recently was looking into this as well, I actually made a full write up earlier today.
In my situation, I didn't want to create an additional Gradle task as I wanted the report to be generated as a part of the existing workflow. I also didn't want to explicitly add the Jacoco plugin, as Google already dups the Jacoco Ant tasks for the coverage reports for Instrumentation Tests.
code :
project.afterEvaluate {
  def append = "append=true"
  def destFile = "destfile=$buildDir/outputs/code-coverage/connected/coverage.ec"
  testDebug.jvmArgs "-javaagent:$buildDir/intermediates/jacoco/jacocoagent.jar=$append,$destFile"

  createDebugCoverageReport.dependsOn testDebug
}
Maven/Jacoco - add Cucumber test results to the Jacoco code coverage overview

Maven/Jacoco - add Cucumber test results to the Jacoco code coverage overview


By : Yiwei Gao
Date : March 29 2020, 07:55 AM
Hope that helps Merging unit-, integration and functional tests should not be merged. They have different goals.
BUT - Cucumber tests can also be used to perform (IT) unit and/or integration testing.
Gradle jacoco fail if code coverage below a threshold using jacoco check element

Gradle jacoco fail if code coverage below a threshold using jacoco check element


By : topicomha
Date : March 29 2020, 07:55 AM
I hope this helps you . This has recently improved, as Jacoco coverage verification was added to Gradle 3.4 (issue #824)!
Before Gradle 3.4, you had to resort to hand-crafted workarounds such as this one.
Related Posts Related Posts :
  • SSO web login in android app with customtabs
  • how to make specific button side curved
  • remove item onlongclick from listview
  • header image alignment coming wrongly in NavigationView android
  • How to add many spaces after the text in TextView
  • how to set "Back Button" , closing activies except main activity in android?
  • Unable to run emulator on Android Studio || Windows 10
  • How can I achieve this requirement using Rx Java
  • How to tilt a Node(or TransformableNode)object downwards in Sceneform(Ar Core)?
  • When to use RTL and LTR?
  • How to create a tab view (category) similar to instagram's explore tab
  • Glide, RecyclerView: Glide returns the same picture over and over again even with different data inputs
  • how to stop open activity while splash screen killed
  • Changing the Color of the Dynamically loaded Buttons onclick
  • Listview: Add arrows as dividers
  • Show confirmation on back/up in Fragment with Navigation Architecture Component
  • How to find the corresponding maven artifact/gradle module of an Android class from the API Docs?
  • ZXing 3.6.0 in portrait mode?
  • Can't use Subversion command line client: svn The path to the Subversion executable is probably wrong android
  • how to set spinner list value first position showing empty
  • When using PersistableBundle in onCreate, it shows me a blank page
  • Failed to resolve Bintray dependency
  • How to change the color of the Android scroll bumper
  • Why run Handler in main Looper thread
  • Android Studio combined chart crashes
  • Setting suggested width and height to a custom view in android
  • How to set input type and format in EditText using kotlin?
  • how to define Android Oncreate optionmenu
  • Exception on orientation change from two-pane mode to one-pane mode
  • How to access members of nested struct and assign them the values read from device tree?
  • How to measure upload progress of a huge String with Retrofit 2?
  • Runtime app localization doesn't work with app bundles
  • How create View and Putting TextView inside it in kotlin
  • how to integrate app action using actions.xml?
  • ConstraintLayout - center TextView in the root but don't override Button
  • Android Studio Text not conforming to layout_margin when I run App on Emulator
  • verifyReleaseResources apk release - react native
  • My app is not visible in share dialog even with intent filters in place
  • How to use cache or local storage?
  • Unhandled Exception in Recycler view xamarin
  • Android Workmanger PeriodicWorkRequest API work only once?
  • Using Touch ID or Face ID without storing user biometrics
  • React Native 3 button and 3 Modal
  • Token Expiration after 1 Hour in Authentication using Retrofit 2 and Logging Interceptor
  • JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.ClassNotFoundException:
  • /bin/sh: adb: command not found
  • Laravel and Android with MySQL database
  • How do I initialize a collection value for a MutableLiveData object?
  • Where does the business logic go in a React-native app?
  • Is await blocking the UI thread on android?
  • React Native: Android build - App.js: Cannot read property 'bindings' of null
  • bindService restrict client to specific app
  • Compiling problem after adding databinding in android studio
  • Android navigation component perform an Action when popping backstack
  • unexpected text from the NFC tag
  • Can I write Rust code that can run on WebAssembly and Android and iOS?
  • Where does Asset Studio store the Google Play Store icon?
  • Flutter - GestureDetector onTapDown color changing
  • No Adapter attached in Bottom Navigation
  • correct use of reflection to get a Class method
  • shadow
    Privacy Policy - Terms - Contact Us © bighow.org