Tengo varias pruebas de NUnit, y me gustaría que cada prueba utilizara un archivo app.config específico. ¿Hay alguna manera de restablecer la configuración a un nuevo archivo de configuración antes de cada prueba?Recargar app.config con nunit
Respuesta
Probar:
/* Usage
* using(AppConfig.Change("my.config")) {
* // do something...
* }
*/
public abstract class AppConfig : IDisposable
{
public static AppConfig Change(string path)
{
return new ChangeAppConfig(path);
}
public abstract void Dispose();
private class ChangeAppConfig : AppConfig
{
private bool disposedValue = false;
private string oldConfig = Conversions.ToString(AppDomain.CurrentDomain.GetData("APP_CONFIG_FILE"));
public ChangeAppConfig(string path)
{
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", path);
typeof(ConfigurationManager).GetField("s_initState", BindingFlags.NonPublic | BindingFlags.Static).SetValue(null, 0);
}
public override void Dispose()
{
if (!this.disposedValue)
{
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", this.oldConfig);
typeof(ConfigurationManager).GetField("s_initState", BindingFlags.NonPublic | BindingFlags.Static).SetValue(null, 0);
this.disposedValue = true;
}
GC.SuppressFinalize(this);
}
}
}
Si su problema es que para diferentes conjuntos de casos de prueba necesita tener diferentes configuraciones, puede tener diferentes proyectos de prueba con un archivo de configuración para cada uno. Luego ejecute sus proyectos de prueba uno a la vez.
un proyecto por prueba? – apollodude217
I answered a similar question para Powershell. La misma técnica se debe trabajar aquí, sólo tiene que llamar a los siguientes al inicio de la prueba:
System.AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", configPath)
EDIT: se ve realmente como esto es más complicado dentro de un exe compilado - lo que necesita hacer something like this con el fin de conseguir la configuración recargada
- 1. Unidad probando el archivo app.config con NUnit
- 2. unicornio no recargar con USR2
- 3. núcleo Recargar Solr con curl
- 4. Recargar UITableViewController
- 5. NUnit Integración con teamcity
- 6. NUnit TestCase con Genericos
- 7. NUnit conflicto con Debug.Assert
- 8. Microsoft PEX con NUnit
- 9. Probar eventos con nunit
- 10. ¿Cómo usar IronPython con App.Config?
- 11. bootstrap popover: recargar el contenido con ajax
- 12. ¿Funciona NUnit con .NET 3.5?
- 13. NUnit con Windows Phone 7
- 14. NUnit con VS2010 y MVC3
- 15. ¿Cobertura de código con nUnit?
- 16. jquery multiselect recargar
- 17. Recargar rubygem en IRB
- 18. Recargar carriles inicializadores
- 19. Recargar datos en UIPickerView
- 20. Ajax Recargar iframe
- 21. UITableView recargar datos
- 22. HTTPD recargar Apache
- 23. Cómo recargar UIViewController
- 24. NUnit FileNotFoundException: System.Configuration
- 25. NUnit 2.5.8, lotes de nunit-agent.exe
- 26. Manipulación del archivo app.config para pruebas unitarias
- 27. ¿Qué pasa con mi archivo app.config?
- 28. Uso de app.config con Interop Controls
- 29. Cómo recargar ReCaptcha usando JavaScript?
- 30. Configuración de SmtpClient y app.config system.net
Esto parece funcionar perfecto. ¿Serías tan amable de explicar lo que realmente hace? :-) – Karsten
Esto no funcionó para mí (usando .NET 4.0). Tuve que extenderlo, por favor vea mi respuesta aquí: http://stackoverflow.com/questions/6150644/change-default-app-config-at-runtime/6151688#6151688 –