Вывод консоли ScalaTest в IntelliJ Idea - PullRequest
4 голосов
/ 14 октября 2011

Я очень разочарован тем, как заставить 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

Ответы [ 2 ]

2 голосов
/ 31 октября 2011

Похоже, это проблема плагина Idea Scala. Более поздние сборки начинают выводить некоторые данные в консоль, но не все, чего следует ожидать. Для последних выпусков плагина проверьте http://confluence.jetbrains.net/display/SCA/Scala+Plugin+Nightly+Builds+for+Nika

1 голос
/ 14 октября 2011

Я только что прошел через "наказание со стороны ИДЕИ", и у меня есть это решение для вас ...

Добавьте Logback и slf4s к вашему 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>

ПРИМЕЧАНИЯ:
Я использовал $ {scala.version} в arfactId slf4s - убедитесь, что вы определили это, или замените его на 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>

Мой паттерн здесь потенциально немного странный - на самом деле это файловый аппендир, который выкладывает его в виде CSV, который я могу легко открыть и отобразить в Excel.

Затем расширьте черту. Вход в ваше приложение выглядит так:

import swing._
import com.weiglewilczek.slf4s.Logging

object App extends SwingApplication with Logging {

    override def startup(args: Array[String]) {

        logger.info("Starting init...")
    }
}

И в окне консоли должно появиться информационное сообщение «Запуск init ...» с кучей других вещей.

Logback и slf4s - это темы, на которые я ссылаюсь.

ВАЖНО И УДИВИТЕЛЬНО:

Я не могу вспомнить, как это называется, но методы журналирования, которые вы используете для публикации сообщений, имеют подписи типа info (message: => String) - как вы можете видеть в logger.scala .

Это означает, что переданное им выражение или блок не будут выполнены вообще , если соответствующий уровень ведения журнала не включен в файле конфигурации.

Так что он только добавляет вызов метода и проверку флага в код, когда он выключен - что довольно мило imho:)

Надеюсь, это поможет, Сет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...