diff options
author | Kenny Root <kenny@the-b.org> | 2015-09-03 13:40:10 -0700 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2015-09-03 13:48:31 -0700 |
commit | 5a597c1ff8705588a70fdb3092a63b56ffb4c02a (patch) | |
tree | 37000c73c6e3a08369c28e3f603195a697185483 /app/src/androidTest | |
parent | 33f091b73b55103b9d2c43aeda32bebc4f83f5ed (diff) | |
download | connectbot-5a597c1ff8705588a70fdb3092a63b56ffb4c02a.tar.gz connectbot-5a597c1ff8705588a70fdb3092a63b56ffb4c02a.tar.bz2 connectbot-5a597c1ff8705588a70fdb3092a63b56ffb4c02a.zip |
Fix instrumentation on connected tests
JaCoCo was not setting its output file correctly and it ended up being
attempted to be written to the root directory which didn't work.
This is a temporary fix until an updated test runner comes out.
Diffstat (limited to 'app/src/androidTest')
-rw-r--r-- | app/src/androidTest/java/org/connectbot/FixJacocoTestRunner.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/app/src/androidTest/java/org/connectbot/FixJacocoTestRunner.java b/app/src/androidTest/java/org/connectbot/FixJacocoTestRunner.java new file mode 100644 index 0000000..fbadb9b --- /dev/null +++ b/app/src/androidTest/java/org/connectbot/FixJacocoTestRunner.java @@ -0,0 +1,34 @@ +/* + * This class comes from a StackOverflow post: + * http://stackoverflow.com/questions/30337375/empty-jacoco-report-for-android-espresso/31600193#31600193 + * + * This should be fixed in com.android.test.support:runner:0.4 and this class can be removed. + */ +package org.connectbot; + +import android.os.Bundle; +import android.support.test.runner.AndroidJUnitRunner; +import android.util.Log; + +import java.lang.reflect.Method; + +public class FixJacocoTestRunner extends AndroidJUnitRunner { + + static { + System.setProperty("jacoco-agent.destfile", "/data/data/" + BuildConfig.APPLICATION_ID + "/coverage.ec"); + } + + @Override + public void finish(int resultCode, Bundle results) { + try { + Class rt = Class.forName("org.jacoco.agent.rt.RT"); + Method getAgent = rt.getMethod("getAgent"); + Method dump = getAgent.getReturnType().getMethod("dump", boolean.class); + Object agent = getAgent.invoke(null); + dump.invoke(agent, false); + } catch (Throwable e) { + Log.d("JACOCO", e.getMessage()); + } + super.finish(resultCode, results); + } +} |