What is Android Test Orchestrator? : <p>Google released Android Testing Support Library 1.0 recently. After reading the <a href="https://android-developers.googleblog.com/2017/07/android-testing-support-library-10-is.html" rel="noreferrer">overview</a>, I'm a little confused with Android Test Orchestrator.</p>

<p>It said </p>

<blockquote>
  <p>Typically, AndroidJUnitRunner runs all tests in the same instrumentation process, which can cause a number of problems.</p>
</blockquote>

<p>Can you explain which kinds of problems will be caused by using the same instrumentation process?</p>

<blockquote>
  <p>if one test crashes, it prevents the remainder of the test suite from running</p>
</blockquote>

<p>Through my experience, one test crash won't prevent from other test cases from running. Please point out what I misunderstood here?</p>

<p>And from <a href="https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator" rel="noreferrer">Android Testing Orchestrator developer guide</a>,</p>

<blockquote>
  <p>For completeness, Android Test Orchestrator runs pm clear after each test.</p>
</blockquote>

<p>So Android Test Orchestrator will run <strong>pm clear [test_package_name]</strong> after each test, right?</p>

<p>Through my test, <strong>pm clear [app_package_name]</strong> won't be executed after each test. That means the data of application under test will not be cleared. So test cases might still have dependencies on each other. For example:</p>

<ul>
<li>Test case A stores a SharedPreference key-value</li>
<li>Test case B which runs after test case A can read out the value stored by test case A</li>
</ul>

<p>Overall, after some trial, I did not find any advantage of Android Test Orchestrator. Can somebody help to address my confusion? Thanks.</p>
