我有一套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”开头的行来自跑步者,您可以看到他们中的一些被插入到我的一个测试的输出中间。跑步者的其他输出出现在其他地方,这不是全部。
我的问题:为什么会这样?有没有办法让跑步者的输出与我的输出协调?
答案 0 :(得分:1)
最有可能的是,套件并行运行。
http://www.scalatest.org/user_guide/using_the_runner#executingSuitesInParallel
随着多核架构的普及,经常出现 可测试的可并行化性质,能够运行测试很有用 在平行下。 [...]
-P选项可以选择附加一个数字(例如“-P10” - 没有中间空间)来指定要创建的线程数 在线程池中。如果未指定数字(或0),则数量为 线程将根据可用的处理器数量来决定。
所以基本上把-P1传给了跑步者。对于eclipse,这个地方可能是Arguments选项卡。