【问题标题】:SBT console encoding for test results测试结果的 SBT 控制台编码
【发布时间】:2014-04-06 22:47:59
【问题描述】:

我有一个 SBT + Scalatest 项目。现在我的测试登录控制台是这样的:

[info] - should do something *** FAILED *** 
[info] java.lang.Exception: ╧ЁштхЄ!

这不是很有用的原因。异常文本是西里尔文,所以我必须在控制台流上设置 cp866 字符集才能正确显示它。

我试过了

Console.setOut(new PrintStream(System.out, true, "cp866"))

但 SBT 忽略了它。似乎 SBT 构建了自己的流来记录各种消息,但我找不到在哪里以及如何更改它..

有一个way 可以添加自定义记录器,但这有点矫枉过正。

【问题讨论】:

    标签: sbt scalatest


    【解决方案1】:

    我找到了解决方案。 我可以创建一个自定义 LogManager

    val customLogManager = LogManager.defaultManager(ConsoleOut.printStreamOut(new java.io.PrintStream(System.out, true, "cp866")))
    

    并在项目设置中设置:

    logManager := customLogManager
    

    不过,我不确定这是否是最佳解决方案。一个缺陷是您必须为每个项目提供 logManager 设置。由于某种原因,从构建设置继承它不起作用。

    【讨论】:

      猜你喜欢
      • 2019-08-16
      • 1970-01-01
      • 2012-09-24
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多