Подтвердить что ты не робот

Как включить отладку моей тестовой задачи JUnit через Gradle

У меня возникают проблемы, когда я пытаюсь запустить мой тест JUnit с помощью тестовой задачи gradle. В то время как я запускаю тест в eclipse непосредственно с помощью теста Run As → JUnit, все в порядке, тест преуспевает. Но через тестовую задачу тест всегда терпит неудачу. Вероятно, некоторые проблемы с кодировкой моего ресурса txt файла. Поэтому я бы хотел включить debug во время запуска теста с помощью gradle

в build.gradle, моя тестовая задача теперь выглядит следующим образом:

test {
    tasks.withType(Compile) {
        options.encoding = 'UTF-8'
    }
}

Итак, что я должен сделать для включения debug? Я запускаю задачи gradle из панели gradle в Eclipse, а не из консоли. Спасибо!

4b9b3361

Ответ 1

Для тестирования отладки следует использовать следующий аргумент: --debug-jvm

Например: gradle test --debug-jvm
Gradle приостанавливает выполнение перед запуском тестов и ожидает подключения отладчика на порту 5005.

Для выполнения только определенных тестов см. http://www.gradle.org/docs/current/userguide/java_plugin.html#sec:java_test

Ответ 2

Как объясняется в 23.12. Test в Gradle Руководство пользователя, выполнение gradle test -Dtest.single=MyTestClass -Dtest.debug приостанавливает тестовую JVM при запуске и разрешает для подключения внешнего отладчика (например, отладчика Eclipse) на порт 5005.

Ответ 3

Полагая это здесь как --debug-jvm, не работало для меня, я смог сделать это, установив:

 org.gradle.daemon=true
 org.gradle.jvmargs=... -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=10999

в

 ~/.gradle/gradle.properties

Но когда я подключаюсь к отладчику eclipse для проекта, ни одна точка останова, которую я установил компиляцию/триггер... Я подключен через отладчик, я вижу действие в представлении Debug, когда я запускаю gradle test из командной строки, например, запускать/останавливать новые потоки, но не может получить контрольные точки для запуска, пытаясь разрешить это сейчас...

Fyi, чтобы остановить запуск deamon gradle --stop

ИЗМЕНИТЬ...

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

Использование направлений из этой статьи: http://blogs.steeplesoft.com/posts/2013/gradle-tip-attaching-a-debugger.html

test {        
    if (System.getProperty('DEBUG', 'false') == 'true') {
        jvmArgs '-Xdebug',
            '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=10999'
    }
}

Выполняется через gradle test -DDEBUG=true