2016-03-28 6 views
1

EclipseでJUnitモデルのテストがいくつかあるプロジェクトがあります。JUnitでのエンコーディング:GradleとEclipseの比較

これらのテストの1つでは、いくつかの特殊文字がアサートされています。 Eclipse(Run As - >JUnit Test)に入りますが、Gradle(clean test)で実行すると失敗します。

エラー:org.junit.ComparisonFailure: expected:<[ü]> but was:<[�]>、Gradleレポートにあります。

私はtasks.withType(JavaCompile) {options.encoding = 'UTF-8}をビルドファイルに追加しました。これはコンパイル時のエンコーディングの問題を修正しました。しかし、私はまだランタイムエラーが発生します(上記の失敗を参照)。

追加すると、compileJava.options.encoding = 'UTF-8'は役に立ちません。

テストはMacOS上で実行され、プロジェクトのエンコーディングはOS(Windows + UTF-8、私の場合は)から継承されます。

+0

あなたのjavaファイルはUTF-8エンコーディングを持っていますか? –

+0

@StefanBirkner containerから継承しました。 – GGrec

+0

私はWindows 8.1で同様の動作に直面しています - 現時点で私にとって唯一の解決策は、Windowsでシステム変数としてGRADLE_OPTS = -Dfile.encoding = utf-8を設定することです。しかし、私は、グラブルビルドスクリプトはいくつかの外部構成に依存すべきではないので、醜い回避策として考えています。 – mschenk74

答えて

1

あなたも、テストクラスをコンパイルするタスクのためのエンコーディングを設定する必要があります。

compileJava.options.encoding = 'UTF-8' 
compileTestJava.options.encoding = 'UTF-8' 
関連する問題