scalatest的输出与测试的输出不同步

时间:2015-03-20 02:09:33

标签: scalatest

我有一套scalatest测试,在运行时使用println将信息输出到控制台。

当我使用Eclipse Scala插件(使用上下文菜单中的Run As ... / 3 ScalaTest - File)运行套件时,控制台会有额外的输出,关于哪些测试通过,哪些测试失败。我猜这个输出来自跑步者。

问题是来自我的代码的行和来自跑步者的行不是明智地交错的。就好像它们是从两个不同步的不同线程打印出来的。

例如,这是运行

的输出
>>>>>>>>>>>>>Starting The parser should warn when the interface name at the end does not match >>>>>>>>>>>>>>>>>>
(interface Fred 
interface Bob)
-----------------------------
File: <unknown> line: 2 column: 11 Name does not match.
----The AST after parsing-------------

[ IntfDeclNd( (), (), () ) ]

---------------------------------------
<<<<<<<<<<<<<Finished The parser should warn when the interface name at the end does not match <<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>Starting The parser should parse a class with generic args >>>>>>>>>>>>>>>>>>
(class Fred{type a, type b extends B}() class)
- should parse multiline comment at end of file *** FAILED ***
  Expected 0, but got 1 (TestsBase.scala:103)
- should fail on incomplete multiline comment
- should parse single line comments
- should allow a class name to be repeated at the end
- should warn when the class name at the end does not match
- should allow an interface name to be repeated at the end
- should warn when the interface name at the end does not match
----The AST after parsing-------------

以“ - should”或“Expected”开头的行来自跑步者,您可以看到他们中的一些被插入到我的一个测试的输出中间。跑步者的其他输出出现在其他地方,这不是全部。

我的问题:为什么会这样?有没有办法让跑步者的输出与我的输出协调?

1 个答案:

答案 0 :(得分:1)

最有可能的是,套件并行运行。

http://www.scalatest.org/user_guide/using_the_runner#executingSuitesInParallel

  

随着多核架构的普及,经常出现   可测试的可并行化性质,能够运行测试很有用   在平行下。 [...]

     

-P选项可以选择附加一个数字(例如“-P10” -   没有中间空间)来指定要创建的线程数   在线程池中。如果未指定数字(或0),则数量为   线程将根据可用的处理器数量来决定。

所以基本上把-P1传给了跑步者。对于eclipse,这个地方可能是Arguments选项卡。