私は複数の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. TeamCity - > NUnitフェーズでapp.configを読み込めないテストプロジェクト
- 2. App.Configからロード可能な.NETタイプ
- 3. 複数のDLLを簡単にロードできるNUnitテストランナーGUI
- 4. 3.2でnunitテストをプログラムで再実行するにはどうすればよいですか? NUnitの2.6.4で
- 5. jQueryロードと再ロード関数
- 6. カスタムConfigSectionをapp.configまたは外部ファイルからロードする
- 7. App.ConfigからAppDomainにアセンブリをロードします。
- 8. ClassCastException再ロード時
- 9. NUnit(FileNotFoundException)の実行時にアセンブリをロードする際の問題
- 10. Visual StudioからNUnitを起動するとnunit.uikit.XmlSerializersをロードできません
- 11. 毎分再ロードfile.js
- 12. jquery;画像;再ロード
- 13. バネバッチを再ロードするジョブ
- 14. AppDelegateからテーブルビューを再ロード
- 15. JSPページを再ロードする
- 16. UIPickerViewにデータを再ロード
- 17. セグ後にテーブルビューを再ロード
- 18. NUnitアドインでTeamCity 6.5.XでNUnitテストを実行
- 19. クリックとロードのイベントでポーズバックグラウンドオーディオを再生
- 20. NUnit addinsがロードされていません
- 21. 閉じると再オープンしないでウィンドウのフォームを再ロード
- 22. カスタムapp.configをコンフィグセクションハンドラ
- 23. テーブルビューが再ロードされているときにnoOfRowsInSectionを再ロードすると、xcode
- 24. app.config weirdness
- 25. PowerShell App.Config
- 26. app.configグローバリゼーション
- 27. .NET 3.5でNUnitを使用
- 28. NUnitをPCLで使う
- 29. GallioでNUnitテストを実行
- 30. シングルスレッドモードでnunit GUIを実行
これは完璧に動作するようです。あなたは実際に何を説明するのがとても親切ですか? :-) – Karsten
これは私のためには機能しませんでした(.NET 4.0を使用)。私はそれを拡張しなければならなかった、私の答えをここに見てください:http://stackoverflow.com/questions/6150644/change-default-app-config-at-runtime/6151688#6151688 –