Подтвердить что ты не робот

С# Как я могу принудительно настроить локализацию в en-US для тестирования проекта

Мне интересно, может ли кто-нибудь помочь мне с этим:

Как указать concrente Localization Culture для проекта тестов в С# в VS2008? Я создаю приложение Asp.Net MVC с нестандартной культурой, указанное в web.config, но как установить ту же культуру для модульных тестов для этого проекта?

4b9b3361

Ответ 1

Вы можете установить

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 

в методе, который помечен как "тестовый инициализатор" в вашем модуле тестирования устройства.

Ответ 2

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = ci;

Ответ 4

Если вы хотите указать CultureInfo для всего тестового набора без необходимости добавлять его в TestInitializer каждого TestClass, вы можете использовать AssemblyInitializeAttribute.

Создайте новый TestClass, добавьте к нему статический метод, который устанавливает DefaultThreadCurrentCulture и DefaultThreadCurrentUICulture, а затем украсит этот метод с помощью AssemblyInitialzeAttribute. Этот метод будет запускаться один раз, когда ваш тестовый набор запускается до того, как будут запущены какие-либо TestMethods. (Примечание: у вас может быть только один такой метод, украшенный этим атрибутом в вашем наборе тестов.)

Ответ 5

Не существует настройки, аналогичной той, которая находится в файле web.config, которая будет работать в вашем случае.

Вы можете попробовать установить его для каждого потока, как предложено другими ответами здесь.

Альтернативно, если вы используете ресурсы, созданные в VS.NET, генерация кода создает статическое свойство в классе Resource, называемом "Culture". Вы можете установить это в своем методе запуска unit test Suite. Это применимо ко всем тестам, которые вы выполняете.