Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(621)

Unified Diff: base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java

Issue 2933623002: Create AwJUnit4ClassRunner AwActivityTestRule and convert AwContentsTest (Closed)
Patch Set: address bo's comments Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java
diff --git a/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java b/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java
index ac5dbfce09699ec56d44b7161daa9e10f2cc6d5f..7caff88f8a2bfbf574f07607e14f152d9ebed90f 100644
--- a/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java
+++ b/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java
@@ -18,6 +18,8 @@ import android.support.test.runner.AndroidJUnitRunner;
import org.chromium.base.Log;
import org.chromium.base.multidex.ChromiumMultiDexInstaller;
+import java.io.IOException;
+
/**
* A custom AndroidJUnitRunner that supports multidex installer and list out test information.
*
@@ -26,8 +28,12 @@ import org.chromium.base.multidex.ChromiumMultiDexInstaller;
* <instrumentation>
*/
public class BaseChromiumAndroidJUnitRunner extends AndroidJUnitRunner {
- private static final String LIST_ALL_TESTS_FLAG =
+ public static final String LIST_ALL_TESTS_FLAG =
"org.chromium.base.test.BaseChromiumAndroidJUnitRunner.TestList";
+
+ private static final String ARGUMENT_ANNOTATION = "annotation";
+ private static final String ARGUMENT_NOT_ANNOTATION = "notAnnotation";
+ private static final String ARGUMENT_LOG_ONLY = "log";
private static final String TAG = "BaseJUnitRunner";
private Bundle mArguments;
@@ -56,7 +62,7 @@ public class BaseChromiumAndroidJUnitRunner extends AndroidJUnitRunner {
*/
@Override
public void onStart() {
- if (mArguments != null && mArguments.getString(LIST_ALL_TESTS_FLAG) != null) {
+ if (toListTests(mArguments)) {
Log.w(TAG, "Runner will list out tests info in JSON without running tests");
listTests(); // Intentionally not calling super.onStart() to avoid additional work.
} else {
@@ -66,13 +72,23 @@ public class BaseChromiumAndroidJUnitRunner extends AndroidJUnitRunner {
private void listTests() {
Bundle results = new Bundle();
+ TestListInstrumentationRunListener listener = new TestListInstrumentationRunListener();
try {
TestExecutor.Builder executorBuilder = new TestExecutor.Builder(this);
- executorBuilder.addRunListener(new TestListInstrumentationRunListener(
- mArguments.getString(LIST_ALL_TESTS_FLAG)));
- TestRequest listTestRequest = createListTestRequest(mArguments);
- results = executorBuilder.build().execute(listTestRequest);
- } catch (RuntimeException e) {
+ executorBuilder.addRunListener(listener);
+ Bundle junit3Arguments = new Bundle(mArguments);
+ junit3Arguments.putString(ARGUMENT_NOT_ANNOTATION, "org.junit.runner.RunWith");
+ TestRequest listJUnit3TestRequest = createListTestRequest(junit3Arguments);
+ results = executorBuilder.build().execute(listJUnit3TestRequest);
+
+ Bundle junit4Arguments = new Bundle(mArguments);
+ junit4Arguments.putString(ARGUMENT_ANNOTATION, "org.junit.runner.RunWith");
+ //Do not use Log runner from android test support
+ junit4Arguments.remove(ARGUMENT_LOG_ONLY);
+ TestRequest listJUnit4TestRequest = createListTestRequest(junit4Arguments);
+ results.putAll(executorBuilder.build().execute(listJUnit4TestRequest));
+ listener.saveTestsToJson(mArguments.getString(LIST_ALL_TESTS_FLAG));
+ } catch (IOException | RuntimeException e) {
String msg = "Fatal exception when running tests";
Log.e(TAG, msg, e);
// report the exception to instrumentation out
@@ -90,4 +106,8 @@ public class BaseChromiumAndroidJUnitRunner extends AndroidJUnitRunner {
builder.addFromRunnerArgs(runnerArgs);
return builder.build();
}
+
+ static boolean toListTests(Bundle arguments) {
+ return arguments != null && arguments.getString(LIST_ALL_TESTS_FLAG) != null;
+ }
}

Powered by Google App Engine
This is Rietveld 408576698