1
我在Eclipse中有一个包含一些JUnit模型测试的项目。在JUnit中进行编码:Gradle vs Eclipse
其中一个测试声明了一些特殊字符。它通过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上运行,项目编码从操作系统(Windows + UTF-8,在我的情况下)继承。
是否你的java文件有UTF-8编码? –
@StefanBirkner从容器继承,是的。 – GGrec
我在Windows 8.1上面对类似的行为 - 目前唯一的解决方案是在Windows中将GRADLE_OPTS = -Dfile.encoding = utf-8设置为系统变量。但我认为这是一个丑陋的解决方法,因为Gradle构建脚本不应该依赖某些外部配置。 – mschenk74