4

所有测试均由 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 测试定义语言环境?或者也许还有其他更好的方法?谢谢。

4

1 回答 1

3

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

test.beforeSuite { TestDescriptor suite ->
   System.setProperty('user.language', 'en')
}
于 2013-06-19T15:03:36.150 回答