web-dev-qa-db-ja.com

Gradleテストタスクを介してJUnitでデバッグを有効にする方法

Gradleテストタスクを使用してJUnitテストを実行しようとすると、問題が発生します。 Run As-> JUnit testを使用してEclipseでテストを直接実行しますが、すべては問題ありません。テストは成功します。しかし、テストタスクでは、テストは常に失敗します。リソースのtxtファイルのエンコードに問題がある可能性があります。だから私はgradleでテストを起動している間にデバッグを有効にしたいと思います

build.gradleでは、私のテストタスクは次のようになります。

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

デバッグを有効にするにはどうすればよいですか?コンソールではなく、EclipseのGradleパネルからgradleタスクを実行します。ありがとう!

34
mefi

テストをデバッグするには、次の引数を使用する必要があります。--debug-jvm

例えば: gradle test --debug-jvm
Gradleは、テストを実行する直前に実行を一時停止し、ポート5005でのデバッガー接続を待ちます。

特定のテストのみを実行する場合は、 https://docs.gradle.org/current/userguide/Java_testing.html#simple_name_pattern を参照してください

78
Sergey

Gradle User Guide23.12. Testで説明されているように、gradle test -Dtest.single=MyTestClass -Dtest.debugを実行すると、起動時にテストJVMが一時停止され、外部デバッガー(Eclipseデバッガーなど)を接続できますポート5005。

24

これを_--debug-jvm_としてここに入れてもうまくいきませんでした。次のように設定することでこれを行うことができました。

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

_ ~/.gradle/gradle.properties
_

しかし、プロジェクトのEclipseデバッガーに接続すると、コンパイル/トリガーを設定したブレークポイントはありません...デバッガーを介して接続されているため、コマンドから_gradle test_を実行するたびに、デバッグビューでアクションを確認できます行、新しいスレッドの開始/停止のように、ブレークポイントを取得してトリガーできず、今これを解決しようとしています...

デーモン実行を停止するFyi _​​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_を介して実行

JUnit Platform Gradleプラグインを使用する場合の解決策

_org.junit.platform.gradle.plugin_を使用する場合、上記のソリューションは機能しません。

代わりに、次のものに置き換える必要があります。

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

私は4.6(gradle)で、build.gradleファイルにこれがあるとテストをデバッグできます。

test {
    debug true
}

リンク- https://docs.gradle.org/4.6/userguide/userguide_single.html#sec:Java_test

1
janoulle