Regression

org.apache.spark.sql.execution.ui.AllExecutionsPageSuite.SPARK-27019: correctly display SQL page when event reordering happens

Failing for the past 1 build (Since #1815 )
Took 0.66 sec.

Error Message

"<html>&#010;      <head>&#010;        <meta http-equiv="content-type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/static/bootstrap.min.css" type="text/css"/><link rel="stylesheet" href="/static/vis-timeline-graph2d.min.css" type="text/css"/><link rel="stylesheet" href="/static/webui.css" type="text/css"/><link rel="stylesheet" href="/static/timeline-view.css" type="text/css"/><script src="/static/sorttable.js"></script><script src="/static/jquery-3.5.1.min.js"></script><script src="/static/vis-timeline-graph2d.min.js"></script><script src="/static/bootstrap.bundle.min.js"></script><script src="/static/initialize-tooltips.js"></script><script src="/static/table.js"></script><script src="/static/timeline-view.js"></script><script src="/static/log-view.js"></script><script src="/static/webui.js"></script><script>setuiroot('')</script>&#010;        <script>setappbasepath('')</script>&#010;        &#010;        &#010;        <link rel="shortcut icon" href="/static/spark-logo-77x50px-hd.png"></link>&#010;        <title>testing - sql</title>&#010;      </head>&#010;      <body>&#010;        <nav class="navbar navbar-expand-md navbar-light bg-light mb-4">&#010;          <div class="navbar-header">&#010;            <div class="navbar-brand">&#010;              <a href="/">&#010;                <img src="/static/spark-logo-77x50px-hd.png"/>&#010;                <span class="version"></span>&#010;              </a>&#010;            </div>&#010;          </div>&#010;          <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarcollapse" aria-controls="navbarcollapse" aria-expanded="false" aria-label="toggle navigation">&#010;            <span class="navbar-toggler-icon"></span>&#010;          </button>&#010;          <div class="collapse navbar-collapse" id="navbarcollapse">&#010;            <ul class="navbar-nav mr-auto"></ul>&#010;            <span class="navbar-text navbar-right d-none d-md-block">&#010;              <strong title="testing" class="text-nowrap">testing</strong>&#010;              <span class="text-nowrap">application ui</span>&#010;            </span>&#010;          </div>&#010;        </nav>&#010;        <div class="container-fluid">&#010;          <div class="row">&#010;            <div class="col-12">&#010;              <h3 style="vertical-align: bottom; white-space: nowrap; overflow: hidden;&#010;                text-overflow: ellipsis;">&#010;                sql&#010;                &#010;              </h3>&#010;            </div>&#010;          </div>&#010;          <div class="row">&#010;            <div class="col-12">&#010;              <div>&#010;        <ul class="list-unstyled">&#010;          <li>&#010;                <a href="#running"><strong>running queries:</strong></a>&#010;                2&#010;              </li>&#010;          &#010;          &#010;        </ul>&#010;      </div><span id="running" class="collapse-aggregated-runningexecutions collapse-table" onclick="collapsetable('collapse-aggregated-runningexecutions',&#010;                'aggregated-runningexecutions')">&#010;            <h4>&#010;              <span class="collapse-table-arrow arrow-open"></span>&#010;              <a>running queries (2)</a>&#010;            </h4>&#010;          </span><div class="aggregated-runningexecutions collapsible-table">&#010;              <div>&#010;        <div>&#010;      <div>&#010;        <form id="form-running-table-top-page" method="get" action="/sql/?&running.sort=id&running.desc=true#running" class="form-inline float-right justify-content-end" style="margin-bottom: 0px;">&#010;          <input type="hidden" name="running.sort" value="id"/><input type="hidden" name="running.desc" value="true"/>&#010;          <label>1 pages. jump to</label>&#010;          <input type="text" name="running.page" id="form-running-table-top-page-no" value="1" class="col-1 form-control"/>&#010;&#010;          <label>. show </label>&#010;          <input type="text" id="form-running-table-top-page-size" name="running.pagesize" value="100" class="col-1 form-control"/>&#010;          <label>items in a page.</label>&#010;&#010;          <button type="submit" class="btn btn-spark">go</button>&#010;        </form>&#010;      </div>&#010;      <div>&#010;        <span style="float: left; padding-top: 4px; padding-right: 4px;">page: </span>&#010;        <ul class="pagination">&#010;          &#010;          &#010;          <li class="page-item disabled"><a href="#" class="page-link">1</a></li>&#010;          &#010;          &#010;        </ul>&#010;      </div>&#010;    </div>&#010;        <table class="table table-bordered table-sm table-striped table-head-clickable table-cell-width-limited" id="running-table">&#010;          <thead>&#010;      <tr><th>&#010;            <a href="/sql/?&running.sort=id&running.desc=false&running.pagesize=100#running">&#010;              <span data-toggle="tooltip" data-placement="top" title="">&#010;                id&nbsp;&#x25be;&#010;              </span>&#010;            </a>&#010;          </th><th>&#010;              <a href="/sql/?&running.sort=description&running.pagesize=100#running">&#010;                <span data-toggle="tooltip" data-placement="top" title="">&#010;                  description&#010;                </span>&#010;              </a>&#010;            </th><th>&#010;              <a href="/sql/?&running.sort=submitted&running.pagesize=100#running">&#010;                <span data-toggle="tooltip" data-placement="top" title="">&#010;                  submitted&#010;                </span>&#010;              </a>&#010;            </th><th>&#010;              <a href="/sql/?&running.sort=duration&running.pagesize=100#running">&#010;                <span data-toggle="tooltip" data-placement="top" title="time from query submission to completion (or if still executing,time since submission)">&#010;                  duration&#010;                </span>&#010;              </a>&#010;            </th><th>&#010;              <a href="/sql/?&running.sort=running+job+ids&running.pagesize=100#running">&#010;                <span data-toggle="tooltip" data-placement="top" title="">&#010;                  running job ids&#010;                </span>&#010;              </a>&#010;            </th><th>&#010;              <a href="/sql/?&running.sort=succeeded+job+ids&running.pagesize=100#running">&#010;                <span data-toggle="tooltip" data-placement="top" title="">&#010;                  succeeded job ids&#010;                </span>&#010;              </a>&#010;            </th><th>&#010;              <a href="/sql/?&running.sort=failed+job+ids&running.pagesize=100#running">&#010;                <span data-toggle="tooltip" data-placement="top" title="">&#010;                  failed job ids&#010;                </span>&#010;              </a>&#010;            </th></tr>&#010;    </thead>&#010;          <tbody>&#010;            <tr>&#010;      <td>&#010;        1&#010;      </td>&#010;      <td>&#010;        <div><a href="//execution/?id=1" class="description-input">&#010;        test</a><span onclick="this.parentnode.queryselector('.stage-details').classlist.toggle('collapsed')" class="expand-details">&#010;        +details&#010;      </span><div class="stage-details collapsed">&#010;        <pre>test<br></br>test</pre>&#010;      </div></div>&#010;      </td>&#010;      <td sorttable_customkey="1637782599363">&#010;        2021/11/24 11:36:39&#010;      </td>&#010;      <td sorttable_customkey="0">&#010;        0 ms&#010;      </td>&#010;      <td>&#010;          <a href="/jobs/job/?id=0">[0]</a>&#010;        </td>&#010;      <td>&#010;          &#010;        </td>&#010;      <td>&#010;          &#010;        </td>&#010;    </tr><tr>&#010;      <td>&#010;        0&#010;      </td>&#010;      <td>&#010;        <div><a href="//execution/?id=0" class="description-input">&#010;        test</a><span onclick="this.parentnode.queryselector('.stage-details').classlist.toggle('collapsed')" class="expand-details">&#010;        +details&#010;      </span><div class="stage-details collapsed">&#010;        <pre>test<br></br>test</pre>&#010;      </div></div>&#010;      </td>&#010;      <td sorttable_customkey="1637782599354">&#010;        2021/11/24 11:36:39&#010;      </td>&#010;      <td sorttable_customkey="0">&#010;        0 ms&#010;      </td>&#010;      <td>&#010;          <a href="/jobs/job/?id=0">[0]</a>&#010;        </td>&#010;      <td>&#010;          &#010;        </td>&#010;      <td>&#010;          &#010;        </td>&#010;    </tr>&#010;          </tbody>&#010;        </table>&#010;        <div>&#010;      <div>&#010;        <form id="form-running-table-bottom-page" method="get" action="/sql/?&running.sort=id&running.desc=true#running" class="form-inline float-right justify-content-end" style="margin-bottom: 0px;">&#010;          <input type="hidden" name="running.sort" value="id"/><input type="hidden" name="running.desc" value="true"/>&#010;          <label>1 pages. jump to</label>&#010;          <input type="text" name="running.page" id="form-running-table-bottom-page-no" value="1" class="col-1 form-control"/>&#010;&#010;          <label>. show </label>&#010;          <input type="text" id="form-running-table-bottom-page-size" name="running.pagesize" value="100" class="col-1 form-control"/>&#010;          <label>items in a page.</label>&#010;&#010;          <button type="submit" class="btn btn-spark">go</button>&#010;        </form>&#010;      </div>&#010;      <div>&#010;        <span style="float: left; padding-top: 4px; padding-right: 4px;">page: </span>&#010;        <ul class="pagination">&#010;          &#010;          &#010;          <li class="page-item disabled"><a href="#" class="page-link">1</a></li>&#010;          &#010;          &#010;        </ul>&#010;      </div>&#010;    </div>&#010;      </div>&#010;            </div><script>&#010;        function clickdetail(details) {&#010;          details.parentnode.queryselector('.stage-details').classlist.toggle('collapsed')&#010;        }&#010;      </script>&#010;            </div>&#010;          </div>&#010;        </div>&#010;      </body>&#010;    </html>" did not contain "failed queries"

Stacktrace

      org.scalatest.exceptions.TestFailedException: "<html>
      <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/static/bootstrap.min.css" type="text/css"/><link rel="stylesheet" href="/static/vis-timeline-graph2d.min.css" type="text/css"/><link rel="stylesheet" href="/static/webui.css" type="text/css"/><link rel="stylesheet" href="/static/timeline-view.css" type="text/css"/><script src="/static/sorttable.js"></script><script src="/static/jquery-3.5.1.min.js"></script><script src="/static/vis-timeline-graph2d.min.js"></script><script src="/static/bootstrap.bundle.min.js"></script><script src="/static/initialize-tooltips.js"></script><script src="/static/table.js"></script><script src="/static/timeline-view.js"></script><script src="/static/log-view.js"></script><script src="/static/webui.js"></script><script>setuiroot('')</script>
        <script>setappbasepath('')</script>
        
        
        <link rel="shortcut icon" href="/static/spark-logo-77x50px-hd.png"></link>
        <title>testing - sql</title>
      </head>
      <body>
        <nav class="navbar navbar-expand-md navbar-light bg-light mb-4">
          <div class="navbar-header">
            <div class="navbar-brand">
              <a href="/">
                <img src="/static/spark-logo-77x50px-hd.png"/>
                <span class="version"></span>
              </a>
            </div>
          </div>
          <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarcollapse" aria-controls="navbarcollapse" aria-expanded="false" aria-label="toggle navigation">
            <span class="navbar-toggler-icon"></span>
          </button>
          <div class="collapse navbar-collapse" id="navbarcollapse">
            <ul class="navbar-nav mr-auto"></ul>
            <span class="navbar-text navbar-right d-none d-md-block">
              <strong title="testing" class="text-nowrap">testing</strong>
              <span class="text-nowrap">application ui</span>
            </span>
          </div>
        </nav>
        <div class="container-fluid">
          <div class="row">
            <div class="col-12">
              <h3 style="vertical-align: bottom; white-space: nowrap; overflow: hidden;
                text-overflow: ellipsis;">
                sql
                
              </h3>
            </div>
          </div>
          <div class="row">
            <div class="col-12">
              <div>
        <ul class="list-unstyled">
          <li>
                <a href="#running"><strong>running queries:</strong></a>
                2
              </li>
          
          
        </ul>
      </div><span id="running" class="collapse-aggregated-runningexecutions collapse-table" onclick="collapsetable('collapse-aggregated-runningexecutions',
                'aggregated-runningexecutions')">
            <h4>
              <span class="collapse-table-arrow arrow-open"></span>
              <a>running queries (2)</a>
            </h4>
          </span><div class="aggregated-runningexecutions collapsible-table">
              <div>
        <div>
      <div>
        <form id="form-running-table-top-page" method="get" action="/sql/?&running.sort=id&running.desc=true#running" class="form-inline float-right justify-content-end" style="margin-bottom: 0px;">
          <input type="hidden" name="running.sort" value="id"/><input type="hidden" name="running.desc" value="true"/>
          <label>1 pages. jump to</label>
          <input type="text" name="running.page" id="form-running-table-top-page-no" value="1" class="col-1 form-control"/>

          <label>. show </label>
          <input type="text" id="form-running-table-top-page-size" name="running.pagesize" value="100" class="col-1 form-control"/>
          <label>items in a page.</label>

          <button type="submit" class="btn btn-spark">go</button>
        </form>
      </div>
      <div>
        <span style="float: left; padding-top: 4px; padding-right: 4px;">page: </span>
        <ul class="pagination">
          
          
          <li class="page-item disabled"><a href="#" class="page-link">1</a></li>
          
          
        </ul>
      </div>
    </div>
        <table class="table table-bordered table-sm table-striped table-head-clickable table-cell-width-limited" id="running-table">
          <thead>
      <tr><th>
            <a href="/sql/?&running.sort=id&running.desc=false&running.pagesize=100#running">
              <span data-toggle="tooltip" data-placement="top" title="">
                id&nbsp;&#x25be;
              </span>
            </a>
          </th><th>
              <a href="/sql/?&running.sort=description&running.pagesize=100#running">
                <span data-toggle="tooltip" data-placement="top" title="">
                  description
                </span>
              </a>
            </th><th>
              <a href="/sql/?&running.sort=submitted&running.pagesize=100#running">
                <span data-toggle="tooltip" data-placement="top" title="">
                  submitted
                </span>
              </a>
            </th><th>
              <a href="/sql/?&running.sort=duration&running.pagesize=100#running">
                <span data-toggle="tooltip" data-placement="top" title="time from query submission to completion (or if still executing,time since submission)">
                  duration
                </span>
              </a>
            </th><th>
              <a href="/sql/?&running.sort=running+job+ids&running.pagesize=100#running">
                <span data-toggle="tooltip" data-placement="top" title="">
                  running job ids
                </span>
              </a>
            </th><th>
              <a href="/sql/?&running.sort=succeeded+job+ids&running.pagesize=100#running">
                <span data-toggle="tooltip" data-placement="top" title="">
                  succeeded job ids
                </span>
              </a>
            </th><th>
              <a href="/sql/?&running.sort=failed+job+ids&running.pagesize=100#running">
                <span data-toggle="tooltip" data-placement="top" title="">
                  failed job ids
                </span>
              </a>
            </th></tr>
    </thead>
          <tbody>
            <tr>
      <td>
        1
      </td>
      <td>
        <div><a href="//execution/?id=1" class="description-input">
        test</a><span onclick="this.parentnode.queryselector('.stage-details').classlist.toggle('collapsed')" class="expand-details">
        +details
      </span><div class="stage-details collapsed">
        <pre>test<br></br>test</pre>
      </div></div>
      </td>
      <td sorttable_customkey="1637782599363">
        2021/11/24 11:36:39
      </td>
      <td sorttable_customkey="0">
        0 ms
      </td>
      <td>
          <a href="/jobs/job/?id=0">[0]</a>
        </td>
      <td>
          
        </td>
      <td>
          
        </td>
    </tr><tr>
      <td>
        0
      </td>
      <td>
        <div><a href="//execution/?id=0" class="description-input">
        test</a><span onclick="this.parentnode.queryselector('.stage-details').classlist.toggle('collapsed')" class="expand-details">
        +details
      </span><div class="stage-details collapsed">
        <pre>test<br></br>test</pre>
      </div></div>
      </td>
      <td sorttable_customkey="1637782599354">
        2021/11/24 11:36:39
      </td>
      <td sorttable_customkey="0">
        0 ms
      </td>
      <td>
          <a href="/jobs/job/?id=0">[0]</a>
        </td>
      <td>
          
        </td>
      <td>
          
        </td>
    </tr>
          </tbody>
        </table>
        <div>
      <div>
        <form id="form-running-table-bottom-page" method="get" action="/sql/?&running.sort=id&running.desc=true#running" class="form-inline float-right justify-content-end" style="margin-bottom: 0px;">
          <input type="hidden" name="running.sort" value="id"/><input type="hidden" name="running.desc" value="true"/>
          <label>1 pages. jump to</label>
          <input type="text" name="running.page" id="form-running-table-bottom-page-no" value="1" class="col-1 form-control"/>

          <label>. show </label>
          <input type="text" id="form-running-table-bottom-page-size" name="running.pagesize" value="100" class="col-1 form-control"/>
          <label>items in a page.</label>

          <button type="submit" class="btn btn-spark">go</button>
        </form>
      </div>
      <div>
        <span style="float: left; padding-top: 4px; padding-right: 4px;">page: </span>
        <ul class="pagination">
          
          
          <li class="page-item disabled"><a href="#" class="page-link">1</a></li>
          
          
        </ul>
      </div>
    </div>
      </div>
            </div><script>
        function clickdetail(details) {
          details.parentnode.queryselector('.stage-details').classlist.toggle('collapsed')
        }
      </script>
            </div>
          </div>
        </div>
      </body>
    </html>" did not contain "failed queries"
      at org.scalatest.Assertions.newAssertionFailedException(Assertions.scala:472)
      at org.scalatest.Assertions.newAssertionFailedException$(Assertions.scala:471)
      at org.scalatest.Assertions$.newAssertionFailedException(Assertions.scala:1231)
      at org.scalatest.Assertions$AssertionsHelper.macroAssert(Assertions.scala:1295)
      at org.apache.spark.sql.execution.ui.AllExecutionsPageSuite.$anonfun$new$2(AllExecutionsPageSuite.scala:59)
      at org.scalatest.OutcomeOf.outcomeOf(OutcomeOf.scala:85)
      at org.scalatest.OutcomeOf.outcomeOf$(OutcomeOf.scala:83)
      at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
      at org.scalatest.Transformer.apply(Transformer.scala:22)
      at org.scalatest.Transformer.apply(Transformer.scala:20)
      at org.scalatest.funsuite.AnyFunSuiteLike$$anon$1.apply(AnyFunSuiteLike.scala:226)
      at org.apache.spark.SparkFunSuite.withFixture(SparkFunSuite.scala:190)
      at org.scalatest.funsuite.AnyFunSuiteLike.invokeWithFixture$1(AnyFunSuiteLike.scala:224)
      at org.scalatest.funsuite.AnyFunSuiteLike.$anonfun$runTest$1(AnyFunSuiteLike.scala:236)
      at org.scalatest.SuperEngine.runTestImpl(Engine.scala:306)
      at org.scalatest.funsuite.AnyFunSuiteLike.runTest(AnyFunSuiteLike.scala:236)
      at org.scalatest.funsuite.AnyFunSuiteLike.runTest$(AnyFunSuiteLike.scala:218)
      at org.apache.spark.SparkFunSuite.org$scalatest$BeforeAndAfterEach$$super$runTest(SparkFunSuite.scala:62)
      at org.scalatest.BeforeAndAfterEach.runTest(BeforeAndAfterEach.scala:234)
      at org.scalatest.BeforeAndAfterEach.runTest$(BeforeAndAfterEach.scala:227)
      at org.apache.spark.sql.execution.ui.AllExecutionsPageSuite.org$scalatest$BeforeAndAfter$$super$runTest(AllExecutionsPageSuite.scala:36)
      at org.scalatest.BeforeAndAfter.runTest(BeforeAndAfter.scala:213)
      at org.scalatest.BeforeAndAfter.runTest$(BeforeAndAfter.scala:203)
      at org.apache.spark.sql.execution.ui.AllExecutionsPageSuite.runTest(AllExecutionsPageSuite.scala:36)
      at org.scalatest.funsuite.AnyFunSuiteLike.$anonfun$runTests$1(AnyFunSuiteLike.scala:269)
      at org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1(Engine.scala:413)
      at scala.collection.immutable.List.foreach(List.scala:333)
      at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:401)
      at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:396)
      at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:475)
      at org.scalatest.funsuite.AnyFunSuiteLike.runTests(AnyFunSuiteLike.scala:269)
      at org.scalatest.funsuite.AnyFunSuiteLike.runTests$(AnyFunSuiteLike.scala:268)
      at org.scalatest.funsuite.AnyFunSuite.runTests(AnyFunSuite.scala:1563)
      at org.scalatest.Suite.run(Suite.scala:1112)
      at org.scalatest.Suite.run$(Suite.scala:1094)
      at org.scalatest.funsuite.AnyFunSuite.org$scalatest$funsuite$AnyFunSuiteLike$$super$run(AnyFunSuite.scala:1563)
      at org.scalatest.funsuite.AnyFunSuiteLike.$anonfun$run$1(AnyFunSuiteLike.scala:273)
      at org.scalatest.SuperEngine.runImpl(Engine.scala:535)
      at org.scalatest.funsuite.AnyFunSuiteLike.run(AnyFunSuiteLike.scala:273)
      at org.scalatest.funsuite.AnyFunSuiteLike.run$(AnyFunSuiteLike.scala:272)
      at org.apache.spark.SparkFunSuite.org$scalatest$BeforeAndAfterAll$$super$run(SparkFunSuite.scala:62)
      at org.scalatest.BeforeAndAfterAll.liftedTree1$1(BeforeAndAfterAll.scala:213)
      at org.scalatest.BeforeAndAfterAll.run(BeforeAndAfterAll.scala:210)
      at org.scalatest.BeforeAndAfterAll.run$(BeforeAndAfterAll.scala:208)
      at org.apache.spark.sql.execution.ui.AllExecutionsPageSuite.org$scalatest$BeforeAndAfter$$super$run(AllExecutionsPageSuite.scala:36)
      at org.scalatest.BeforeAndAfter.run(BeforeAndAfter.scala:273)
      at org.scalatest.BeforeAndAfter.run$(BeforeAndAfter.scala:271)
      at org.apache.spark.sql.execution.ui.AllExecutionsPageSuite.run(AllExecutionsPageSuite.scala:36)
      at org.scalatest.Suite.callExecuteOnSuite$1(Suite.scala:1175)
      at org.scalatest.Suite.$anonfun$runNestedSuites$1(Suite.scala:1222)
      at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1328)
      at org.scalatest.Suite.runNestedSuites(Suite.scala:1220)
      at org.scalatest.Suite.runNestedSuites$(Suite.scala:1154)
      at org.scalatest.tools.DiscoverySuite.runNestedSuites(DiscoverySuite.scala:30)
      at org.scalatest.Suite.run(Suite.scala:1109)
      at org.scalatest.Suite.run$(Suite.scala:1094)
      at org.scalatest.tools.DiscoverySuite.run(DiscoverySuite.scala:30)
      at org.scalatest.tools.SuiteRunner.run(SuiteRunner.scala:45)
      at org.scalatest.tools.Runner$.$anonfun$doRunRunRunDaDoRunRun$13(Runner.scala:1322)
      at org.scalatest.tools.Runner$.$anonfun$doRunRunRunDaDoRunRun$13$adapted(Runner.scala:1316)
      at scala.collection.immutable.List.foreach(List.scala:333)
      at org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:1316)
      at org.scalatest.tools.Runner$.$anonfun$runOptionallyWithPassFailReporter$24(Runner.scala:993)
      at org.scalatest.tools.Runner$.$anonfun$runOptionallyWithPassFailReporter$24$adapted(Runner.scala:971)
      at org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:1482)
      at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:971)
      at org.scalatest.tools.Runner$.main(Runner.scala:775)
      at org.scalatest.tools.Runner.main(Runner.scala)