2016-05-03 4 views
11

У моего первоначального кода было много больше, что отвлекало меня от истинной причины проблемы. Это фиксирует существенную проблему.Ошибка ScalaTest DeferredAbortedSuite при запуске простых тестов.

import org.scalatest.AsyncFlatSpec 
import scala.concurrent.Future 

class AsyncFlatSpecSpec extends AsyncFlatSpec 
{ 
    it should "parse an XML file" in { 
    // ... Parsing ... 
    Future.successful(succeed) 
    } 

    it should "parse an XML file" in { 
    // ... Serializing ... 
    Future.successful(succeed) 
    } 
} 

Это вызвало эти ошибки:

[info] DeferredAbortedSuite: 
[error] Uncaught exception when running AsyncFlatSpecSpec: java.lang.ArrayIndexOutOfBoundsException: 17 
[trace] Stack trace suppressed: run last test:testOnly for the full output. 

Там нет доступа к массиву происходит где-нибудь в моем коде. Что происходит?

Запуск «последний тест: testOnly» не очень помогло:

[info] DeferredAbortedSuite: 
[error] Uncaught exception when running AsyncFlatSpecSpec: java.lang.ArrayIndexOutOfBoundsException: 17 
sbt.ForkMain$ForkError: java.lang.ArrayIndexOutOfBoundsException: 17 
    at org.scalatest.exceptions.StackDepth$class.stackTraceElement(StackDepth.scala:63) 
    at org.scalatest.exceptions.StackDepth$class.failedCodeFileName(StackDepth.scala:77) 
    at org.scalatest.exceptions.StackDepthException.failedCodeFileName(StackDepthException.scala:36) 
    at org.scalatest.exceptions.StackDepth$class.failedCodeFileNameAndLineNumberString(StackDepth.scala:59) 
    at org.scalatest.exceptions.StackDepthException.failedCodeFileNameAndLineNumberString(StackDepthException.scala:36) 
    at org.scalatest.tools.StringReporter$.withPossibleLineNumber(StringReporter.scala:442) 
    at org.scalatest.tools.StringReporter$.stringsToPrintOnError(StringReporter.scala:916) 
    at org.scalatest.tools.StringReporter$.fragmentsForEvent(StringReporter.scala:747) 
    at org.scalatest.tools.Framework$SbtLogInfoReporter.apply(Framework.scala:622) 
    at org.scalatest.tools.FilterReporter.apply(FilterReporter.scala:41) 
    at org.scalatest.tools.SbtDispatchReporter$$anonfun$apply$1.apply(SbtDispatchReporter.scala:23) 
    at org.scalatest.tools.SbtDispatchReporter$$anonfun$apply$1.apply(SbtDispatchReporter.scala:23) 
    at scala.collection.Iterator$class.foreach(Iterator.scala:893) 
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1336) 
    at scala.collection.IterableLike$class.foreach(IterableLike.scala:72) 
    at scala.collection.AbstractIterable.foreach(Iterable.scala:54) 
    at org.scalatest.tools.SbtDispatchReporter.apply(SbtDispatchReporter.scala:23) 
    at org.scalatest.tools.Framework$SbtReporter.apply(Framework.scala:1119) 
    at org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite(Framework.scala:387) 
    at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:506) 
    at sbt.ForkMain$Run$2.call(ForkMain.java:296) 
    at sbt.ForkMain$Run$2.call(ForkMain.java:286) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

Confused, я отступил в версии без асинхронным, чтобы увидеть, если что-либо дела обстояли лучше.

import org.scalatest.FlatSpec 
class FlatSpecSpec extends FlatSpec { 

    it should "parse an XML file" in { 
    // ... Parsing ... 
    succeed 
    } 

    it should "parse an XML file" in { 
    // ... Serializing ... 
    succeed 
    } 

} 

Он произвел эту другую, но все-таки загадочное сообщение об ошибке:

[info] DeferredAbortedSuite: 
[info] Exception encountered when attempting to run a suite with class name: org.scalatest.DeferredAbortedSuite *** ABORTED *** (20 milliseconds) 
[info] Exception encountered when attempting to run a suite with class name: org.scalatest.DeferredAbortedSuite (AsyncFlatSpecSpec.scala:32) 
[info] ScalaTest 

Для полноты здесь являются соответствующие части моего build.sbt:

scalaVersion := "2.11.8" 
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0-M15" % "test" 
libraryDependencies += "org.scalactic" %% "scalactic" % "3.0.0-M15" 

Это было в конечном счете, тривиальная ошибка с моей стороны, но я хотел опубликовать это ради кого-либо еще в Google.

ответ

35

Как многие читатели, возможно, заметили при просмотре примеров, проблема заключалась в том, что у меня было копирование/вставка того же описания теста. Это позволяет компилировать код, но во время выполнения с ошибкой будет с ошибками, что не идентифицирует описание как виновника.

Глупые ошибки с моей стороны, но было бы неплохо, если бы компилятор сообщал об этом более полезным способом.

+0

Работал для меня тоже! Отметьте этот ответ как принятый. –

Смежные вопросы