私は複数のNUnitテストを行っていますが、それぞれのテストで特定のapp.configファイルを使用したいと思います。 各テストの前に新しい設定ファイルに設定をリセットする方法はありますか?nunitでapp.configを再ロード
10
A
答えて
8
試してみてください。テストあたり
/* 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);
}
}
}
0
異なるケースのテストケースで異なる設定が必要な場合は、それぞれの設定ファイルで異なるテストプロジェクトを作成できます。次に、テストプロジェクトを1つずつ実行します。
+0
一つのプロジェクト? – apollodude217
0
I answered a similar question for Powershell。ここで動作するはず同じ技術は、単にあなたのテストの開始時に次のように呼び出します。
System.AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", configPath)
EDIT:これはコンパイル済みのEXE内でより複雑であるように実際に見える - あなたが得るためにsomething like thisを行う必要があります設定がリロードされました。
関連する問題
- 1. app.configファイルのデータを再ロードするには
- 2. TeamCity - > NUnitフェーズでapp.configを読み込めないテストプロジェクト
- 3. App.Configからロード可能な.NETタイプ
- 4. app.configから「タイプをロードできませんでした」
- 5. app.configマッピングがないアセンブリのapp.config再マップを検討してください。
- 6. NUnit再試行動的属性
- 7. 複数のDLLを簡単にロードできるNUnitテストランナーGUI
- 8. 3.2でnunitテストをプログラムで再実行するにはどうすればよいですか? NUnitの2.6.4で
- 9. WindowsでMojolicousサーバーを再ロード
- 10. NUnit - デフォルトで例外を再試行します。
- 11. カスタムConfigSectionをapp.configまたは外部ファイルからロードする
- 12. C#DLL - Common.Logging(Log4Net)用の別個のapp.configファイルをロードする
- 13. App.ConfigからAppDomainにアセンブリをロードします。
- 14. jQueryロードと再ロード関数
- 15. NUnit(FileNotFoundException)の実行時にアセンブリをロードする際の問題
- 16. ClassCastException再ロード時
- 17. app.configが.Net Core MSTestsプロジェクトにロードされていません
- 18. Visual StudioからNUnitを起動するとnunit.uikit.XmlSerializersをロードできません
- 19. NUnitアドインでTeamCity 6.5.XでNUnitテストを実行
- 20. NUnit addinsがロードされていません
- 21. Xamarinでapp.configを変換
- 22. カスタムapp.configをコンフィグセクションハンドラ
- 23. app.configグローバリゼーション
- 24. app.config weirdness
- 25. PowerShell App.Config
- 26. 毎分再ロードfile.js
- 27. jquery;画像;再ロード
- 28. SymmetricDSでfile_snapshotを再ロードする方法
- 29. jqueryデータ型のデータを角で再ロード
- 30. webserverなしでphp.iniを再ロード
これは完璧に動作するようです。あなたは実際に何を説明するのがとても親切ですか? :-) – Karsten
これは私のためには機能しませんでした(.NET 4.0を使用)。私はそれを拡張しなければならなかった、私の答えをここに見てください:http://stackoverflow.com/questions/6150644/change-default-app-config-at-runtime/6151688#6151688 –