title: How to apply a Rule to all test cases in a AndroidJUnitRunner?
body: <p>I'm trying to apply a TestWatcher as a rule across all my test cases run by a particular runner.</p>
  <p><strong>MetadataCollector:</strong></p>
  <pre><code>class MetadataCollector : TestWatcher() { ... }
  </code></pre>
  <p><strong>TestRunner:</strong></p>
  <pre><code>class TestRunner : AndroidJUnitRunner() {
  
    override fun onCreate(arguments: Bundle?) {
      super.onCreate(arguments)
    }
  
    override fun newApplication(cl: ClassLoader?, className: String?, context: Context?): Application {
      return super.newApplication(cl, TestApplication::class.java.name, context)
    }
  }
  </code></pre>
  <p>All of my test classes currently require <code>MetadataCollector()</code> to be initialized as a Rule:</p>
  <p><strong>Test Class:</strong></p>
  <pre><code>@JvmField @Rule val collector = MetadataCollector()
  </code></pre>
  <p>Is there a way I can create an instance of this rule automatically to each test case from the runner? Ideally, this is to avoid duplicating this <code>@Rule</code> creation in every single Test Class.</p>
  <p>I am unfortunately stuck with <strong>JUnit 4</strong> at the moment. :(</p>