我对如何使IDEA将测试输出到控制台感到非常沮丧。我尝试了不同版本的Scala、ScalaTest和IDEA,但都没有帮助。目前我的设置是:scala-2.10.0-snapshot、scalatest_2.9.1-1.6.1、idea 110.3。该项目由Maven管理。请问有谁能帮忙吗?我期望看到像这样的内容:http://www.scalatest.org/getting_started_with_feature_spec。
我刚刚经历了整个“被IDEA惩罚”的过程,现在我有一个解决方案给你...
<dependency>
<groupId>com.weiglewilczek.slf4s</groupId>
<artifactId>slf4s_${scala.version}</artifactId>
<version>1.0.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>0.9.30</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.30</version>
</dependency>
注意事项:
我在slf4s artifactId中使用了${scala.version} - 确保您已定义此内容,或者将其替换为2.9.1或类似内容。
另外 - 您还需要可用于依赖项的scala-tools存储库 - 我假设您已经拥有它以进行编译。
然后,在资源文件夹中添加一个名为logback.xml的文件,其中包含以下内容:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date,%d{HH:mm:ss.SSS},%thread,%-5level,%logger{36},%line,%msg%n</pattern>
</encoder>
</appender>
<root level="TRACE">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
我的模式可能有点奇怪——它实际上是来自一个文件 appender,它将其作为 CSV 输出,我可以轻松地在 Excel 中打开并绘制图形。
然后在您的应用程序中扩展 Logging trait,就像这样:
import swing._
import com.weiglewilczek.slf4s.Logging
object App extends SwingApplication with Logging {
override def startup(args: Array[String]) {
logger.info("Starting init...")
}
}
并且信息消息“Starting init…”以及其他一些内容应该出现在控制台窗口中。
Logback和slf4s是我链接到的主题。
重要而棒极了:
我记不得它叫什么名字了,但你用来发布消息的日志记录方法都有像info(message: => String)这样的签名 - 就像你在logger.scala中看到的那样。
这意味着你传递给它们的表达式或块将不会在配置文件中未启用相关日志记录级别时执行任何操作。
因此,当它被关闭时,它只会向代码添加一个方法调用和一个标志检查 - 在我看来非常棒 :)
希望这有所帮助, Seth。
SwingApplication
有任何关系。 - Nikita Volkov