Покрытие кода IntelliJ 12 не работает в редакторе для проектов GWT

Я пробую IntelliJ 12, и мне не удается получить цвет линии (красный, зеленый, желтый) в редакторах после запуска тестов с покрытием. Кто-нибудь заметил проблему или это только у меня не получается?


person Luigi R. Viggiano    schedule 16.12.2012    source источник


Ответы (3)


По умолчанию результаты покрытия кода отображаются только в левом поле, и их может быть трудно заметить:

покрытие отображается в желобе

Вы можете либо изменить цвета желоба, либо настроить IntelliJ IDEA для изменения фона целых строк (вместо переднего плана) в зависимости от их статуса покрытия:

Настройки фона покрытия

Теперь намного проще увидеть статус покрытия:

покрытие отображается как фон

person CrazyCoder    schedule 17.12.2012
comment
Я использую Mac OS X и IntelliJ 12, цветной левый желоб не виден, а цвета и шрифты не имеют никакого эффекта. - person Luigi R. Viggiano; 17.12.2012
comment
Пожалуйста, поделитесь проектом, чтобы воспроизвести проблему. - person CrazyCoder; 17.12.2012
comment
Это довольно интересно. Я только что попробовал с новым проектом, и появляется желоб. Это заставляет меня думать, что это проблема моего проекта (проект maven с несколькими модулями). Я постараюсь провести дополнительное расследование, чтобы выяснить причину. Если получится воспроизвести в мини проекте, поделюсь. Спасибо. - person Luigi R. Viggiano; 17.12.2012
comment
Мы попытались повторно импортировать проект из maven в новый intellij, и похоже, что странное поведение, которое я опубликовал, происходит только с нашим проектом. Я не могу понять, что такого особенного в нашем проекте, что вызывает неправильное поведение, поскольку с новыми проектами, которые мы создали для воспроизведения проблемы, все работает просто отлично. Мне кажется, что где-то есть скрытый баг, но я пока не могу его обнаружить. Спасибо за вашу помощь. - person Luigi R. Viggiano; 18.12.2012
comment
Странный. Если вам удастся воспроизвести его, отправьте сообщение об ошибке по адресу youtrack.jetbrains.net/issues/IDEA. - person CrazyCoder; 18.12.2012
comment
Это может быть связано с этой ошибкой (?): youtrack.jetbrains.com/issue/PY-6817 в одном комментарии упоминается, что если приложение с тестами находится в корне открытого проекта, оно показывает покрытие. Когда одно и то же приложение находится в каком-либо вложенном каталоге (например, /virtualenv/src/app/), покрытие не отображается. - person Luigi R. Viggiano; 20.12.2012
comment
Обновление: я попытался создать подмодуль mvn в проекте mvn, и покрытие работает; поэтому в моем случае проблема отличается от той, что указана в упомянутом отчете об ошибке. - person Luigi R. Viggiano; 20.12.2012
comment
Я нашел причину. Предоставляю ответ. - person Luigi R. Viggiano; 20.12.2012

Наконец я узнал, что вызывало нарушение покрытия кода IntelliJ IDEA 12.0.0 (а также 12.0.1).

Мой проект является проектом GWT, поэтому есть некоторая дополнительная конфигурация для запуска клиентских тестов gwt: исходные каталоги добавляются в путь к классам, чтобы режим gwt devmode можно было запустить без головы для тестирования:

 <build>
        <plugins>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.5</version>
                <configuration>
                    <additionalClasspathElements>
                        <!-- the following two lines, causes intellij coverage to stop working -->
                        <additionalClasspathElement>${project.build.sourceDirectory}</additionalClasspathElement>
                        <additionalClasspathElement>${project.build.testSourceDirectory}</additionalClasspathElement>
                    </additionalClasspathElements>
                </configuration>
            </plugin>
        </plugins>
    </build>

Добавление исходных папок в путь к классам surefire приводит к тому, что IntelliJ IDEA 12.x неправильно настраивает проект (файл .iml), и покрытие перестает работать.

Обратите внимание, что эта конфигурация maven не влияет на IntelliJ IDEA 11.x, которая работает отлично.

Чтобы воспроизвести ошибку, просто добавьте <additionalClasspathElement> в свою надежную конфигурацию, затем щелкните правой кнопкой мыши свой проект и выполните «Maven-> Reimport», затем запустите тесты с покрытием; и вы увидите, что редактор пропускает всю информацию о покрытии строк.

Мне удалось воспроизвести проблему, и я собираюсь отправить отчет об ошибке.

Обходным путем было бы закомментировать две строки <additionalClasspathElement> и выполнить «Maven-> Reimport», а затем раскомментировать их, если вам нужно.

Сообщается об ошибке IDEA-97920, она будет исправлена ​​в версии 12.0.2.

person Luigi R. Viggiano    schedule 20.12.2012
comment
Эта ошибка будет исправлена ​​в 12.0.2. - person Sergey; 20.12.2012
comment
Эта ошибка должна быть исправлена ​​в IDEA 12.0.2 (скоро будет опубликован EAP, релиз состоится примерно через пару недель). - person CrazyCoder; 20.12.2012
comment
Эта проблема также влияет на нормальные зависимости от каталогов исходного кода! т.е. когда я добавляю каталог над моим исходным каталогом в качестве зависимости компиляции (Структура проекта › Зависимости), результаты покрытия не будут отображаться (ни в желобе, ни в полной строке). Кроме того, в сводке покрытия все классы будут показаны дважды. Эта проблема сохраняется в IDEA 14.0.3! - person jhunovis; 24.02.2015

Я использую IntelliJ 13 на Mac с темой Darcula.

Зелено-красные цвета я сначала не заметил, так как они очень тусклые и не выделяются на черном фоне.

Однако, если вы очень внимательно посмотрите слева от номеров строк (если они у вас настроены), вы увидите их слабо.

Вы можете легко настроить цвета, чтобы сделать их более заметными.

Значения по умолчанию должны быть изменены IntelliJ в будущем выпуске.

person Dan    schedule 22.05.2014