2011-02-15 12 views

Respuesta

46

Usted puede configurar

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

en el método que está marcado como "inicializador de prueba" en su marco de pruebas de unidad.

+2

puede configurar esto justo antes del método que está llamando para que desee tener la cultura específica, no es necesario que lo haga en la configuración de prueba. y es posible que no desee si solo necesita configurarlo para una prueba. –

+0

Soy muy cauteloso al desafiar una respuesta tan votada, pero creo que debería ser 'Thread.CurrentThread.CurrentUICulture' y no CurrentCulture. Intellisense para CurrentUICulture en sí dice 'Obtiene o establece la cultura actual utilizada por Resource Manager para buscar recursos específicos de cultura en tiempo de ejecución '. Mis pruebas fallan cuando se usan pruebas en un recurso de cultura" fr-FR "usando CurrentCulture, pero pase al usar CurrentUICulture. –

+0

web.config permite especificar ambas culturas a través de . Dependiendo de qué atributo use en la aplicación real, puede establecer la propiedad apropiada para la prueba unitaria. Las preguntas originales se refieren a la cultura, no a la cultura, pero esto está sujeto a interpretación. –

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

No hay una configuración similar a la de web.config que funcione en su caso.

Puede intentar configurarlo para cada subproceso según lo sugerido por las otras respuestas aquí.

Alternativamente, si está utilizando recursos creados en VS.NET, la generación de código crea una propiedad estática en la clase Resource llamada 'Cultura'. Puede configurarlo en el método de inicio de Suite de su unidad de prueba. Eso se aplicará a todas las pruebas que ejecuta.

2

Si desea especificar el CultureInfo para todo el conjunto de pruebas sin tener que agregarlo en el TestInitializer de cada TestClass, puede usar el AssemblyInitializeAttribute.

Crear un nuevo TestClass, agregue un método estático a lo que establece DefaultThreadCurrentCulture y DefaultThreadCurrentUICulture, y luego decorar con ese método AssemblyInitialzeAttribute. Este método se ejecutará una vez cuando se inicie el banco de pruebas, antes de que se ejecute TestMethods. (Nota: es posible que solo tenga uno de estos métodos decorado con este atributo en el banco de pruebas.)

Cuestiones relacionadas