Hi All, 1) Could you please let us know, how to add exclusions like Add below as Exclusions:-
**/R.class,**/R$*.class,**/BuildConfig.*,**/Manifest*.*,**/*Fragment*.*,**/*Activity$*.* in the java class . 2) I had hot coded the device path say /mnt/sdcard/ in the jacoco source code and rebuild the jar and used it as jacoco default takes path as / to store jacoco.exec. How to pass the path as argument to android ? Thanks Mohan On Fri, Dec 18, 2015 at 12:16 AM, <abhigupta2...@gmail.com> wrote: > You can achieve code coverage of android apk using gradle and jacoco, by > following below steps. > > 1.Configuring JaCoCo plugin in build.gradle (present inside 'app' folder ) > as below > apply plugin: 'jacoco' > jacoco { > toolVersion = "0.7.4+" > } > 2. Enable Jacoco code coverage on the debug build in build.gradle > (present inside 'app' folder ) at 'buildTypes' as below > > debug { > testCoverageEnabled true > } > 3. Add below line in your 'app/src/main/AndroidManifest.xml ' to access > sdcard for writting coverage data > <uses-permission > android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> > 4. Add below lines in 'MainActivity.java' at end > protected void onStop() > { > super.onStop(); > if(BuildConfig.DEBUG) > { > try { > Class<?> emmaRTClass = > Class.forName("com.vladium.emma.rt.RT"); > Method dumpCoverageMethod = > emmaRTClass.getMethod("dumpCoverageData",coverageFile.getClass(), > boolean.class, boolean.class); > dumpCoverageMethod.invoke(null, > "/sdcard/coverage.exec", ture, false); > } catch (Exception e) {} > } > } > 5.Build debug apk. > 6..Install this apk in your device , and to do the test. > 7.After testing kill your app. > 8.Connect device with computer, run below command to get coverage data > file from device > 'adb pull /sdcard/coverage.exec' > 9.Genrate coverage report using ant(with jacoco task) or jenkings (jacoco > plugin) by using following:- > Copy classes from "D:\coverage\app\build\intermediates\classes\debug" > Copy source from "D:\coverage\app\\src\main\java" > Copy exec file from "D:\coverage\mycoverage.exec" > Add below as Exclusions:- > > **/R.class,**/R$*.class,**/BuildConfig.*,**/Manifest*.*,**/*Fragment*.*,**/*Activity$*.* > > > Thanks > Abhishek Gupta > > > On Saturday, 17 October 2015 10:11:14 UTC+5:30, vishy wrote: > > Hi guys, > > > > I am investigating code-coverage for our Android app. built with Gradle > and Android Studio. > > > > I need code-coverage reports in two situations: during manual tests, and > during automated tests built with our Appium suite. > > > > I need to get a proof-of-concept that JaCoCo can indeed do code coverage > in this case. > > > > Given that we need coverage for Appium and manual tests, I believe > offline-instrumentation with JaCoCo is what I need. > > > > I have succeeded in creating an instrumented APK. > > But when I run the app manually, I keep seeing errors in the logcat > W/System.err: java.io.FileNotFoundException: /jacoco.exec: open failed: > EROFS (Read-only file system) > > > > From JaCoCo docs as well as general Googling, I understand that Jacoco > needs to know where to store the jacoco.exec file - and that I need to > package a jacoco-agent.properties (containing a destfile property) with the > APK. > > > > I have tried putting jacoco-agent.properties in the "assets" folder of > my app - it was packaged into the APK properly, but did not seem to have > any effect (i.e Jacoco failed as usual) I tried putting it inside res - it > did not get packaged into the APK. I tried res/raw and hit the error about > a dash in the filename. > > > > I am at my wit's end, and would really appreciate help. How do I package > jacoco-agent.properties using my Gradle build into the APK, so that JaCoCo > will read it? > > -- > You received this message because you are subscribed to a topic in the > Google Groups "JaCoCo and EclEmma Users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/jacoco/vx0g_6TKY8Q/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > jacoco+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jacoco/66a5b5af-8987-46a3-9902-0b6e0c7e079c%40googlegroups.com > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "JaCoCo and EclEmma Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jacoco+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jacoco/CAP_M%3DRqmEd0eOZ3KEiGweFstWCGsd3eBUN8y_TUF2AOBQeZjdg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.