执行多个区域设置的单元测试

时间:2014-04-22 18:53:56

标签: c# unit-testing localization

我很难实现我想做的事情,并希望别人提出一些建议来帮助我解决我缺乏理解的问题。

我有一系列的单元测试 我正在测试的应用程序是munti-lingual,(英语和法语)。

我创建了2个字符串资源文件(StringConstants.resx和StringConstants.fr-CA.resx)

在我的每个单元测试中,我可以使用

验证属性和字符串值
String message1 = StringConstants.ERROR_MESSAGE_INVALID_USERID; 
Assert.IsTrue(Something.Contains(message1));

我希望能够做的是设置测试套件,一次用于英语(默认),一次用于法语。

目前我使用其中一行代码

Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en");
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("fr-CA");

MyTestInitialize方法中控制语言,我希望能够传入本地执行,以便在命令行或构建服务器(TeamCity)上使用。

任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:1)

我假设您正在使用MSTest,但这应该适用于任何事情:在开始测试之前设置环境变量(例如在批处理文件中或者TeamCity参数就足够了)

Environment.GetEnvironmentVariable("TEST_CULTURE_INFO")