5

IDEA がテストからコンソールに何かを出力する方法にかなり不満を感じています。Scala、ScalaTest、および IDEA のさまざまなバージョンを試しましたが、何も役に立ちません。現在、私のセットアップは次のとおりです。scala-2.10.0-snapshot、scalatest_2.9.1-1.6.1、アイデア 110.3。プロジェクトはmavenによって管理されています。誰でも助けてもらえますか?私はそのようなものを見ることを期待しています: http://www.scalatest.org/getting_started_with_feature_spec

4

2 に答える 2

3

Idea Scala プラグインの問題のようです。後のビルドでは、出力がコンソールに出力され始めますが、期待するすべての出力が得られるわけではありません。プラグインの最新リリースについては、 http://confluence.jetbrains.net/display/SCA/Scala+Plugin+Nightly+Builds+for+Nikaをチェックしてください

于 2011-10-31T02:31:36.187 に答える
1

私は「IDEAによって罰せられる」こと全体を経験したばかりで、この解決策があります...

Logbackslf4sを POM に追加します。

<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>

私のパターンは少し奇妙である可能性があります-実際には、Excelで簡単に開いてグラフ化できるCSVとして吐き出すファイルアペンダーからのものです。

次に、アプリの特性 Logging を次のように拡張します。

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でわかるように。

これは、関連するレベルのロギングが構成ファイルで有効になっていない場合、それらに渡す式またはブロックがまったく実行されないことを意味します。

したがって、コードがオフになっている場合にのみ、メソッド呼び出しとフラグチェックがコードに追加されます-これはかなり甘いです:)

お役に立てば幸いです、セス。

于 2011-10-14T05:44:20.477 に答える