【发布时间】:2013-06-16 04:21:10
【问题描述】:
所有测试都由 gradle 启动。 我想为项目中的所有 JUnit 测试定义语言环境。一开始我想到了以下方法:
public class TestCases {
static Locale defaultLocale = Locale.getDefault();
@BeforeClass
public static void setDefaultLocale() {
Locale.setDefault(Locale.UK);
}
// here goes bunch of tests
// ...
@AfterClass
public static void restoreLocale() {
Locale.setDefault(defaultLocale);
}
}
但这太麻烦了,因为我有数百个文件要更改。
我还发现使用 -Duser.language=en 参数(我使用 Intellij)运行单个测试可以完成这项工作。但我无法更改 gradle 脚本以提供此解决方案。
有没有办法通过 Spring 上下文为 JUnit 测试定义语言环境?或者也许还有其他更好的方法?谢谢。
【问题讨论】:
-
一项改进(尽管不是解决方案)是声明一个父测试类来设置语言环境并让所有相关测试扩展它。
-
谢谢,这可以工作。但对我来说仍然看起来很麻烦,因为每个测试类的语言环境都更改了两次。或者它看起来很适合我?
-
您也可以在命令行中为 Gradle 提供系统属性:
gradle -Duser.language=en test。 -
测试是通过 gradle wrapper 启动的,我认为它不支持这种设置参数的方式。由于语言环境错误,测试仍然失败。