title: sbt does not differenciate between flags given to test runners
body: <p>Currently:</p>
  
  <ul>
  <li>Sbt has multiple test runners: scalaTest, junit-interface, etc..</li>
  <li>Each test runner has it's own set of flags (<a href="http://www.scalatest.org/user_guide/using_the_runner" rel="nofollow noreferrer">scalaTest flags</a>, <a href="https://github.com/sbt/junit-interface" rel="nofollow noreferrer">junit-interface flags</a>).</li>
  <li><p>You can pass flags through sbt to the test runners, for example:</p>
  
  <p><code>$ sbt '&lt;project&gt;/test-only * -- -f &lt;out_file&gt;'</code> (-f is a scalaTest flag)</p></li>
  </ul>
  
  <p>However, the flags seem to be passed to all test runners, even if a flag is not compatible with all test runners.</p>
  
  <p>I'm also experiencing behavior contrary to what I found in the documentation. ScalaTest says the <code>-v</code> flag will "<em>print the ScalaTest version</em>" and junit-interface says it will "<em>Log "test run started" / "test started" / "test run finished" events on log level "info" instead of "debug".</em>" Instead ScalaTest throws an unrecognised flag exception.</p>
  
  <p><code>$ sbt '&lt;project&gt;/test-only * -- -v'</code></p>
  
  <pre><code>java.lang.IllegalArgumentException: Argument unrecognized by ScalaTest's Runner: -v
      at org.scalatest.tools.ArgsParser$.parseArgs(ArgsParser.scala:425)
      at org.scalatest.tools.Framework.runner(Framework.scala:929)
      ...
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at java.lang.Thread.run(Thread.java:748)
  [error] (elasticSearchDriver/test:testOnly) java.lang.IllegalArgumentException: Argument unrecognized by ScalaTest's Runner: -v
  [error] Total time: 1 s, completed Aug 15, 2017 11:12:56 AM
  </code></pre>
  
  <h3>Question:</h3>
  
  <p>What is the actual underlying behavior of the flags passed to the test runners through sbt? Is there a bit of documentation that explains what's going on?</p>