通过Spring上下文更改JUnit测试的语言环境

时间:2013-06-19 14:54:38

标签: spring junit gradle

所有测试均由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测试定义Locale?或许还有另一种更好的方法?感谢。

1 个答案:

答案 0 :(得分:2)

实现此目的的一种方法是添加在执行套件之前触发的测试生命周期钩子。

test.beforeSuite { TestDescriptor suite ->
   System.setProperty('user.language', 'en')
}