3

我有以下方法:

    [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,稍后会有其他测试直接调用资源文件。

4

2 回答 2

1

从应用程序的命令行版本访问资源的方式是否与从 Visual Studio 访问资源的方式相同?

在此处输入图像描述

于 2013-08-04T05:46:49.773 回答
1

尝试设置 Threading.Thread.CurrentThread.CurrentCulture

于 2013-08-02T08:21:39.190 回答