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

标签 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,此特定测试将通过,但是稍后还有其他测试直接调用资源文件。

最佳答案

尝试设置 Threading.Thread.CurrentThread.CurrentCulture

关于unit-testing - 本地化测试从命令行失败,但在 VS 中成功运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17876299/

相关文章:

unit-testing - 谁负责在非初始化依赖注入(inject)方案中附加监听器?

c++ - 如何为小部件代码编写单元测试?

azure - 等待 azure 管道中的控制台输出

ios - 语言设置事件在 iOS 应用程序中发生更改

php - 如何生成.po 文件?

webdriver - Chromedriver 在使用 Selenium Grid 和 .net 的特定计算机上非常慢

reactjs - React 测试库 : Test if children are passed/rendered correctly

c - 消息目录文件的默认扩展名

C# 在控制台应用程序中嵌入测试代码

visual-studio - 没有发现要运行的测试 - 在调试/运行单元测试用例时 - Visual Studio 2017 15.5.1