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. núcleo Recargar Solr con curl
- 3. unicornio no recargar con USR2
- 4. Recargar UITableViewController
- 5. NUnit Integración con teamcity
- 6. Probar eventos con nunit
- 7. NUnit TestCase con Genericos
- 8. NUnit conflicto con Debug.Assert
- 9. Microsoft PEX con NUnit
- 10. ¿Cómo usar IronPython con App.Config?
- 11. bootstrap popover: recargar el contenido con ajax
- 12. NUnit con Windows Phone 7
- 13. ¿Funciona NUnit con .NET 3.5?
- 14. ¿Cobertura de código con nUnit?
- 15. NUnit con VS2010 y MVC3
- 16. jquery multiselect recargar
- 17. Cómo recargar UIViewController
- 18. Recargar carriles inicializadores
- 19. HTTPD recargar Apache
- 20. Recargar rubygem en IRB
- 21. Ajax Recargar iframe
- 22. Recargar datos en UIPickerView
- 23. UITableView recargar datos
- 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. Uso de app.config con Interop Controls
- 28. ¿Qué pasa con mi archivo app.config?
- 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 –