Могу ли я с помощью mstest запустить набор модульных тестов для каждого из поддерживаемых языков?

Мы используем файлы .resx для интернационализации нашего приложения на несколько языков. Наши автоматические модульные тесты в их собственной сборке, и мы запускаем mstest для этого проекта из командной строки из нашего CI (Jenkins) следующим образом:

mstest.exe /testcontainer:unittests.dll /category:"!TemporaryExclude" /resultsfile:UnitTests. trx

Мы обнаружили случаи, когда определенные модульные тесты завершались сбоем, если запускались на машине, настроенной на одну из наших поддерживаемых культур, отличных от английского.Мы хотели бы, чтобы наш CI запускал модульные тесты для каждой культуры, включая текущую en-us один. Должно быть, это проблема, с которой сталкивались другие люди, но я ничего о ней не нашел.

Есть ли способ запустить mstest для определенной культуры?Я не видел что-нибудь в документах командной строки для mstest.exe

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

Я задавался вопросом о том, чтобы создать класс из TestMethodAttribute и запустить его через все библиотеки DLL моих языковых ресурсов, запуская тестовый код один раз для каждой, но Visual Studio сообщает мне:

Ошибка 2 'ClassToExtendTestMethodAttribute': не может быть получен из запечатанного типа «Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute»

. То же самое для TestClassAttribute.

5
задан JeffH 22 June 2012 в 16:24
поделиться