我有以下方法:
[TestMethod]
public void Message_TestToEnglishString()
{
// Set the thread to French to get the French resource
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr");
string frenchMessageBase = MessagesResources.USER_LOGGED_IN;
Assert.AreNotEqual("{0} logged in.", frenchMessageBase);
}
这在 Visual Studio 中完全符合预期。从命令行对相同代码运行的相同测试失败,因为该值是从 "{0} logged in."
的英语资源文件中提取的。
关于为什么会发生这种情况以及如何解决它的任何见解?
如果我设置资源文件 Culture 即 MessagesResources.Culture
,此特定测试将通过,但是稍后还有其他测试直接调用资源文件。
最佳答案
尝试设置 Threading.Thread.CurrentThread.CurrentCulture
关于unit-testing - 本地化测试从命令行失败,但在 VS 中成功运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17876299/