के साथ app.config को दोबारा लोड करें मेरे पास एकाधिक NUnit परीक्षण हैं, और मैं प्रत्येक टेस्ट को एक विशिष्ट app.config फ़ाइल का उपयोग करना चाहता हूं। प्रत्येक परीक्षण से पहले कॉन्फ़िगरेशन को एक नई कॉन्फ़िगरेशन फ़ाइल में रीसेट करने का कोई तरीका है?nunit
nunit
उत्तर
प्रयास करें:
/* 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);
}
}
}
यदि आप जारी करते हैं कि आप परीक्षण मामलों के विभिन्न सेटों के लिए अलग-अलग कॉन्फ़िगरेशन की आवश्यकता है तो आपके पास प्रत्येक के लिए कॉन्फ़िगरेशन फ़ाइल के साथ विभिन्न परीक्षण परियोजनाएं हो सकती हैं। फिर एक समय में अपनी परीक्षण परियोजनाओं को चलाएं।
एक परीक्षण प्रति परियोजना? – apollodude217
पावरहेल के लिए answered a similar question। उसी तकनीक का यहाँ काम करना चाहिए, बस अपने परीक्षण के शुरू में निम्नलिखित फोन:
System.AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", configPath)
संपादित करें: असल में लगता है कि यह एक संकलित exe के भीतर और अधिक जटिल है - आप आदेश प्राप्त करने के लिए क्या करने की जरूरत something like this कॉन्फ़िगर पुनः लोड किया गया।
- 1. NUnit
- 2. NUnit
- 3. NUnit
- 4. NUnit
- 5. NUnit
- 6. NUnit
- 7. NUnit
- 8. NUnit
- 9. NUnit एक्सटेंशन
- 10. NUnit 2.5.2
- 11. Nunit परीक्षण
- 12. NUnit 2.5.8
- 13. TestDriven.NET और NUnit
- 14. NUnit: शब्दकोश Assert
- 15. NUnit सभी परीक्षणों
- 16. NUnit असेंबली नहीं मिला
- 17. NUnit - एक DLL
- 18. NUnit TestCaseSource फ़ैक्टरी
- 19. NUnit Nested संग्रह तुलना
- 20. NUnit FileNotFoundException: System.Configuration
- 21. FsCheck और NUnit एकीकरण
- 22. रनिंग nunit-सांत्वना System.IO.FileLoadException
- 23. NUnit, CollectionAssert.AreEquivalent (..., ...), सी # प्रश्न
- 24. एएसपी.NET + NUnit: .NET 4
- 25. NUnit परीक्षण System.AccessViolationException
- 26. NUnit और app.config
- 27. टेस्ट विंडोज NUnit
- 28. NUnit Assert.Equals बनाम Assert.AreEqual
- 29. NUnit परिनियोजन Item
- 30. गतिशील रूप से NUnit
यह सही काम करने लगता है। क्या आप यह समझाने के लिए बहुत दयालु होंगे कि वास्तव में यह क्या करता है? :-) – Karsten
यह मेरे लिए काम नहीं करता (.NET 4.0 का उपयोग कर)। मुझे इसे विस्तारित करना था, कृपया मेरा जवाब यहां देखें: http://stackoverflow.com/questions/6150644/change-default-app-config-at-runtime/6151688#6151688 –