OSDN Git Service

Allow custom run name in IRemoteAndroidTestRunner.
authorBrett Chabot <brettchabot@android.com>
Thu, 15 Sep 2011 00:45:25 +0000 (17:45 -0700)
committerBrett Chabot <brettchabot@android.com>
Thu, 15 Sep 2011 00:45:25 +0000 (17:45 -0700)
Change-Id: I6a332ea16243f43d080e4d88e914d6b2e940ce97

ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/IRemoteAndroidTestRunner.java
ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/RemoteAndroidTestRunner.java

index 7cb6557..7606d69 100644 (file)
@@ -186,6 +186,15 @@ public interface IRemoteAndroidTestRunner {
     public void setMaxtimeToOutputResponse(int maxTimeToOutputResponse);
 
     /**
+     * Set a custom run name to be reported to the {@link ITestRunListener} on {@link #run}
+     * <p/>
+     * If unspecified, will use package name
+     *
+     * @param runName
+     */
+    public void setRunName(String runName);
+
+    /**
      * Execute this test run.
      * <p/>
      * Convenience method for {@link #run(Collection)}.
index d680509..b8cd154 100644 (file)
@@ -36,10 +36,11 @@ import java.util.Map.Entry;
 public class RemoteAndroidTestRunner implements IRemoteAndroidTestRunner  {
 
     private final String mPackageName;
-    private final  String mRunnerName;
+    private final String mRunnerName;
     private IDevice mRemoteDevice;
     // default to no timeout
     private int mMaxTimeToOutputResponse = 0;
+    private String mRunName = null;
 
     /** map of name-value instrumentation argument pairs */
     private Map<String, String> mArgMap;
@@ -214,6 +215,13 @@ public class RemoteAndroidTestRunner implements IRemoteAndroidTestRunner  {
     /**
      * {@inheritDoc}
      */
+    public void setRunName(String runName) {
+        mRunName = runName;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public void run(ITestRunListener... listeners)
             throws TimeoutException, AdbCommandRejectedException, ShellCommandUnresponsiveException,
             IOException {
@@ -230,8 +238,8 @@ public class RemoteAndroidTestRunner implements IRemoteAndroidTestRunner  {
             getArgsCommand(), getRunnerPath());
         Log.i(LOG_TAG, String.format("Running %1$s on %2$s", runCaseCommandStr,
                 mRemoteDevice.getSerialNumber()));
-        // TODO: allow run name to be configurable
-        mParser = new InstrumentationResultParser(mPackageName, listeners);
+        String runName = mRunName == null ? mPackageName : mRunName;
+        mParser = new InstrumentationResultParser(runName, listeners);
 
         try {
             mRemoteDevice.executeShellCommand(runCaseCommandStr, mParser, mMaxTimeToOutputResponse);