Gradleテストタスクを使用してJUnitテストを実行しようとすると、問題が発生します。 Run As-> JUnit testを使用してEclipseでテストを直接実行しますが、すべては問題ありません。テストは成功します。しかし、テストタスクでは、テストは常に失敗します。リソースのtxtファイルのエンコードに問題がある可能性があります。だから私はgradleでテストを起動している間にデバッグを有効にしたいと思います
build.gradleでは、私のテストタスクは次のようになります。
test {
tasks.withType(Compile) {
options.encoding = 'UTF-8'
}
}
デバッグを有効にするにはどうすればよいですか?コンソールではなく、EclipseのGradleパネルからgradleタスクを実行します。ありがとう!
テストをデバッグするには、次の引数を使用する必要があります。--debug-jvm
例えば: gradle test --debug-jvm
Gradleは、テストを実行する直前に実行を一時停止し、ポート5005でのデバッガー接続を待ちます。
特定のテストのみを実行する場合は、 https://docs.gradle.org/current/userguide/Java_testing.html#simple_name_pattern を参照してください
Gradle User Guide の23.12. Test
で説明されているように、gradle test -Dtest.single=MyTestClass -Dtest.debug
を実行すると、起動時にテストJVMが一時停止され、外部デバッガー(Eclipseデバッガーなど)を接続できますポート5005。
これを_--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
_を介して実行
_org.junit.platform.gradle.plugin
_を使用する場合、上記のソリューションは機能しません。
代わりに、次のものに置き換える必要があります。
_junitPlatformTest {
if (System.getProperty('DEBUG', 'false') == 'true') {
jvmArgs '-Xdebug',
'-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=10999'
}
}
_
私は4.6(gradle)で、build.gradleファイルにこれがあるとテストをデバッグできます。
test {
debug true
}
リンク- https://docs.gradle.org/4.6/userguide/userguide_single.html#sec:Java_test