Ответ 1
Вы можете установить
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
в методе, который помечен как "тестовый инициализатор" в вашем модуле тестирования устройства.
Мне интересно, может ли кто-нибудь помочь мне с этим:
Как указать concrente Localization Culture для проекта тестов в С# в VS2008? Я создаю приложение Asp.Net MVC с нестандартной культурой, указанное в web.config, но как установить ту же культуру для модульных тестов для этого проекта?
Вы можете установить
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
в методе, который помечен как "тестовый инициализатор" в вашем модуле тестирования устройства.
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
Если вы используете xUnit, вы можете добавить UseCultureAttribute
в свой проект, как определено здесь:
https://github.com/xunit/samples.xunit/blob/master/UseCulture/UseCultureAttribute.cs
Чтобы использовать его:
[Fact]
[UseCulture("en-US")]
public void MyTest()
{
// ...
}
Если вы хотите указать CultureInfo
для всего тестового набора без необходимости добавлять его в TestInitializer
каждого TestClass
, вы можете использовать AssemblyInitializeAttribute.
Создайте новый TestClass
, добавьте к нему статический метод, который устанавливает DefaultThreadCurrentCulture
и DefaultThreadCurrentUICulture
, а затем украсит этот метод с помощью AssemblyInitialzeAttribute
. Этот метод будет запускаться один раз, когда ваш тестовый набор запускается до того, как будут запущены какие-либо TestMethods. (Примечание: у вас может быть только один такой метод, украшенный этим атрибутом в вашем наборе тестов.)
Не существует настройки, аналогичной той, которая находится в файле web.config, которая будет работать в вашем случае.
Вы можете попробовать установить его для каждого потока, как предложено другими ответами здесь.
Альтернативно, если вы используете ресурсы, созданные в VS.NET, генерация кода создает статическое свойство в классе Resource, называемом "Culture". Вы можете установить это в своем методе запуска unit test Suite. Это применимо ко всем тестам, которые вы выполняете.