Средство выполнения тестов NUnit использует язык и региональные параметры en-US, а локаль ОС - de-DE

Я настраиваю сборки на новом экземпляре Bamboo (5.1.0.3901) под управлением Windows Server 2008.

Средство выполнения тестов NUnit запускается через MSBuild для выполнения тестов. Некоторые из моих тестов, которые отлично работают на моей машине и на другом сервере, теперь не работают. Очевидно, все эти тесты зависят от настроек культуры. Насколько я могу судить, все они либо анализируют строки даты через DateTime.Parse(string), либо сравнивают зависящие от языка сообщения об ошибках с жестко закодированными ожидаемыми сообщениями на немецком языке.

Я зарегистрировал Thread.CurrentThread.CurrentUICulture ("en-US") и Thread.CurrentThread.CurrentCulture ("de-DE").

Локаль ОС установлена ​​на "de-DE".

Как я могу пройти эти тесты, не меняя их? Поскольку их так много, я бы предпочел настроить, чтобы NUnit (или MSBuild, или Bamboo) все запускал с помощью «de-DE».


person EagleBeak    schedule 25.09.2013    source источник


Ответы (1)


NUnit имеет атрибут SetUpFixture, который

отмечает класс, который содержит методы одноразовой установки или разрыва для всех тестовых приспособлений в данном пространстве имен. Класс может содержать не более одного метода, отмеченного атрибутом SetUpAttribute, и одного метода, отмеченного атрибутом TearDownAttribute.

Я думаю, что это наиболее глобальная возможность настройки, которая у вас есть для установки Thread.CurrentThread.CurrentUICulture и Thread.CurrentThread.CurrentCulture перед запуском ваших тестов. Это может быть краткосрочным делом, которое может вам помочь.

Но поскольку кажется, что у вас есть много модульных тестов, вам не стоит беспокоиться о внесении DateTime.Parse изменений в вашу базу кода ...

person meilke    schedule 25.09.2013
comment
DateTime.Parse() вызовы находятся в тестах. Но +1 за упоминание SetUpFixture! Я знал только TestFixtureSetUp о методе, который запускается один раз перед запуском первого теста в фикстуре. Поскольку у меня более 20 тестовых проектов, я все же предпочел бы настройку на более высоком уровне, поэтому я не принимаю ответ (пока). - person EagleBeak; 26.09.2013