2016-01-20 77 views
0

我在Intellij Idea 14中編寫了ScalaTest代碼,我希望在Intellij中看到輸出。我目前有2個測試,其中我希望一個失敗,另一個測試成功。當我在Intellij中運行測試時,一旦執行失敗的測試,測試輸出日誌中就會出現大量堆棧跟蹤,而另一個測試根本不會執行,這真的很煩人。如果我導航到項目目錄並執行sbt test,則測試運行正常進行(即失敗的測試被標記爲失敗,後續的測試被標記爲成功)。Intellij Idea中的ScalaTest在測試失敗後暫停

是否有一些特定於Intellij的ScalaTest配置需要設置,而不是安裝Scala插件?

出現在的IntelliJ的堆棧跟蹤如下:

"[MOckito testing]" did not equal "[expected result]" 
ScalaTestFailureLocation: ComapiSpec$$anonfun$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2 at (ComapiSpec.scala:26) 
org.scalatest.exceptions.TestFailedException: "[MOckito testing]" did not equal "[expected result]" 
    at org.scalatest.MatchersHelper$.newTestFailedException(MatchersHelper.scala:160) 
    at org.scalatest.Matchers$AnyShouldWrapper.shouldEqual(Matchers.scala:6326) 
    at ComapiSpec$$anonfun$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply$mcV$sp(ComapiSpec.scala:26) 
    at ComapiSpec$$anonfun$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(ComapiSpec.scala:26) 
    at ComapiSpec$$anonfun$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(ComapiSpec.scala:26) 
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58) 
    at akka.http.scaladsl.testkit.RouteTest$$anonfun$check$1.apply(RouteTest.scala:53) 
    at akka.http.scaladsl.testkit.RouteTest$$anonfun$check$1.apply(RouteTest.scala:53) 
    at akka.http.scaladsl.testkit.RouteTestResultComponent$RouteTestResult.$tilde$greater(RouteTestResultComponent.scala:52) 
    at ComapiSpec$$anonfun$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(ComapiSpec.scala:25) 
    at ComapiSpec$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ComapiSpec.scala:25) 
    at ComapiSpec$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ComapiSpec.scala:25) 
    at org.scalatest.Transformer$$anonfun$apply$1.apply$mcV$sp(Transformer.scala:22) 
    at org.scalatest.OutcomeOf$class.outcomeOf(OutcomeOf.scala:85) 
    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.WordSpecLike$$anon$1.apply(WordSpecLike.scala:953) 
    at org.scalatest.Suite$class.withFixture(Suite.scala:1122) 
    at org.scalatest.WordSpec.withFixture(WordSpec.scala:1881) 
    at org.scalatest.WordSpecLike$class.invokeWithFixture$1(WordSpecLike.scala:950) 
    at org.scalatest.WordSpecLike$$anonfun$runTest$1.apply(WordSpecLike.scala:962) 
    at org.scalatest.WordSpecLike$$anonfun$runTest$1.apply(WordSpecLike.scala:962) 
    at org.scalatest.SuperEngine.runTestImpl(Engine.scala:306) 
    at org.scalatest.WordSpecLike$class.runTest(WordSpecLike.scala:962) 
    at org.scalatest.WordSpec.runTest(WordSpec.scala:1881) 
    at org.scalatest.WordSpecLike$$anonfun$runTests$1.apply(WordSpecLike.scala:1021) 
    at org.scalatest.WordSpecLike$$anonfun$runTests$1.apply(WordSpecLike.scala:1021) 
    at org.scalatest.SuperEngine$$anonfun$traverseSubNodes$1$1.apply(Engine.scala:413) 
    at org.scalatest.SuperEngine$$anonfun$traverseSubNodes$1$1.apply(Engine.scala:401) 
    at scala.collection.immutable.List.foreach(List.scala:381) 
    at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:401) 
    at org.scalatest.SuperEngine.org$scalatest$SuperEngine$$runTestsInBranch(Engine.scala:390) 
    at org.scalatest.SuperEngine$$anonfun$traverseSubNodes$1$1.apply(Engine.scala:427) 
    at org.scalatest.SuperEngine$$anonfun$traverseSubNodes$1$1.apply(Engine.scala:401) 
    at scala.collection.immutable.List.foreach(List.scala:381) 
    at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:401) 
    at org.scalatest.SuperEngine.org$scalatest$SuperEngine$$runTestsInBranch(Engine.scala:396) 
    at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:483) 
    at org.scalatest.WordSpecLike$class.runTests(WordSpecLike.scala:1021) 
    at org.scalatest.WordSpec.runTests(WordSpec.scala:1881) 
    at org.scalatest.Suite$class.run(Suite.scala:1424) 
    at org.scalatest.WordSpec.org$scalatest$WordSpecLike$$super$run(WordSpec.scala:1881) 
    at org.scalatest.WordSpecLike$$anonfun$run$1.apply(WordSpecLike.scala:1067) 
    at org.scalatest.WordSpecLike$$anonfun$run$1.apply(WordSpecLike.scala:1067) 
    at org.scalatest.SuperEngine.runImpl(Engine.scala:545) 
    at org.scalatest.WordSpecLike$class.run(WordSpecLike.scala:1067) 
    at ComapiSpec.org$scalatest$BeforeAndAfterAll$$super$run(ComapiSpec.scala:17) 
    at org.scalatest.BeforeAndAfterAll$class.liftedTree1$1(BeforeAndAfterAll.scala:257) 
    at org.scalatest.BeforeAndAfterAll$class.run(BeforeAndAfterAll.scala:256) 
    at ComapiSpec.run(ComapiSpec.scala:17) 
    at org.scalatest.tools.SuiteRunner.run(SuiteRunner.scala:55) 
    at org.scalatest.tools.Runner$$anonfun$doRunRunRunDaDoRunRun$3.apply(Runner.scala:2563) 
    at org.scalatest.tools.Runner$$anonfun$doRunRunRunDaDoRunRun$3.apply(Runner.scala:2557) 
    at scala.collection.immutable.List.foreach(List.scala:381) 
    at org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:2557) 
    at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1044) 
    at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1043) 
    at org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:2722) 
    at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:1043) 
    at org.scalatest.tools.Runner$.run(Runner.scala:883) 
    at org.scalatest.tools.Runner.run(Runner.scala) 
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.runScalaTest2(ScalaTestRunner.java:138) 
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.main(ScalaTestRunner.java:28) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) 

根據要求,截圖: enter image description here

回答

2

其實IntelliJ正在運行另一個測試,但沒有顯示輸出。 IntelliJ中的默認值是僅顯示失敗的測試,並隱藏成功的測試。有一個按鈕(在窗口中顯示失敗測試的紅色圖標),您可以單擊以查看所有測試,包括通過測試和通過測試失敗。

0

你想應該是默認的行爲,這也是我什麼看看我的ScalaTest測試何時失敗 - 有些失敗並不妨礙另一個測試運行。

見我一個失敗的測試試驗檯:

enter image description here

在哪個IDE窗口中你看到了失敗的測試堆棧?

也許你可以試試updating to at least IDEA 15(也有IDEA 16 EAP,但你可能不喜歡運行預發佈軟件)? IDEA 14可能很難得到適當的支持。