本地化测试从命令行失败,但在VS中成功运行

时间:2013-07-26 08:15:56

标签: unit-testing localization mstest

我有以下方法:

    [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,那么此特定测试将通过,但稍后会在该资源文件上直接调用其他测试。

2 个答案:

答案 0 :(得分:1)

尝试设置Threading.Thread.CurrentThread.CurrentCulture

答案 1 :(得分:1)

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

enter image description here