我有以下方法:
[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."
.
关于为什么会发生这种情况以及如何解决它的任何见解?
如果我设置资源文件文化,这个特定的测试将通过,即MessagesResources.Culture
,稍后会有其他测试直接调用资源文件。