Cómo especificar concrente Cultura de localización para el proyecto de pruebas en C# en VS2008? Estoy construyendo la aplicación Asp .Net MVC que tiene una cultura no estándar especificada en web.config, pero ¿cómo establecer la misma cultura para las pruebas unitarias para ese proyecto?C# ¿Cómo puedo forzar la Cultura de localización a en-US para el proyecto de pruebas
Respuesta
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.
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
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.
Si está utilizando xUnit, se puede añadir el UseCultureAttribute
a su proyecto, como se define aquí:
https://github.com/xunit/samples.xunit/blob/master/UseCulture/UseCultureAttribute.cs
utilizarlo:
[Fact]
[UseCulture("en-US")]
public void MyTest()
{
// ...
}
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.)
- 1. ¿Cómo puedo forzar la Cultura de localización a EE.UU. para toda la aplicación?
- 2. Forzar una localización específica para un objetivo
- 3. ¿Cómo puedo forzar a un ContextMenu a cerrar (proyecto WPF)?
- 4. Cómo establecer default_url_options de localización para las pruebas funcionales (rieles)
- 5. C# float.tryparse para cultura francesa
- 6. C# Cultura de BackgroundWorker
- 7. ¿Cómo puedo obtener LINQ para ordenar según la cultura?
- 8. Xcode: ejecutar proyecto con la localización especificada
- 9. Cómo forzar la llamada a un método derivado de C#
- 10. cómo forzar IntelliJ para buscar siempre en el "Proyecto conjunto"
- 11. Cómo utilizar la localización en C#
- 12. ¿Cómo puedo forzar la finalización de urllib2?
- 13. ¿Cómo puedo forzar al constructor base a llamarse en C#?
- 14. ¿Puedo forzar la limpieza de la memoria en C#?
- 15. Localización en la aplicación C#
- 16. ¿Cómo puedo forzar joya joya para actualizar a 1.3.1
- 17. Agregar pruebas unitarias a un proyecto existente
- 18. ¿Cómo puedo forzar a IIS 7 a enjuagar la salida?
- 19. Definir la cultura para todo el dominio de aplicación
- 20. Realización de pruebas unitarias para el proyecto Euler
- 21. ¿Cómo puedo forzar a maven a empaquetar mi proyecto en 1.5?
- 22. No se han encontrado recursos apropiados para la cultura especificada o la cultura neutral
- 23. ¿Cómo hacer las pruebas de integración para un proyecto WCF?
- 24. ¿Cómo agrego pruebas unitarias a un proyecto de Leiningen?
- 25. No se han encontrado recursos para la cultura especificada o la cultura neutral
- 26. Cultura personalizada para verbosidad específica del cliente?
- 27. ¿Cómo puedo forzar a Selenium a ejecutar pruebas solo después de que se haya completado $ (document) .ready()?
- 28. Cómo deshabilitar la localización de errores en Visual Studio?
- 29. ¿Puedo forzar a MSTest a utilizar un nuevo proceso para cada ejecución de prueba?
- 30. ¿Puedo forzar .htaccess para actualizar?
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. –
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. –
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. –