diff --git a/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractDependencyInjectionSpringContextTests.cs b/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractDependencyInjectionSpringContextTests.cs
index a1787c7b..db1a4726 100644
--- a/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractDependencyInjectionSpringContextTests.cs
+++ b/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractDependencyInjectionSpringContextTests.cs
@@ -25,6 +25,7 @@ using System.Reflection;
using NUnit.Framework;
using Spring.Context;
+using Spring.Context.Support;
using Spring.Objects.Factory;
using Spring.Objects.Factory.Config;
using Spring.Objects.Factory.Support;
@@ -77,6 +78,7 @@ namespace Spring.Testing.NUnit
/// Aleksandar Seovic (.NET)
public abstract class AbstractDependencyInjectionSpringContextTests : AbstractSpringContextTests
{
+ private bool registerContextWithContextRegistry = true;
private bool populateProtectedVariables = false;
private AutoWiringMode autowireMode = AutoWiringMode.ByType;
private bool dependencyCheck = true;
@@ -98,6 +100,17 @@ namespace Spring.Testing.NUnit
public AbstractDependencyInjectionSpringContextTests()
{}
+ ///
+ /// Controls, whether the instance will
+ /// be registered/unregistered with the global before and after each test.
+ /// Defaults to true.
+ ///
+ public bool RegisterContextWithContextRegistry
+ {
+ get { return registerContextWithContextRegistry; }
+ set { registerContextWithContextRegistry = value; }
+ }
+
///
/// Gets or sets a flag specifying whether to populate protected
/// variables of this test case.
@@ -163,9 +176,13 @@ namespace Spring.Testing.NUnit
/// Test setup method.
///
[SetUp]
- protected virtual void SetUp()
+ public virtual void SetUp()
{
this.applicationContext = GetContext(ContextKey);
+ if (RegisterContextWithContextRegistry)
+ {
+ ContextRegistry.RegisterContext(this.applicationContext);
+ }
InjectDependencies();
try
{
@@ -339,7 +356,7 @@ namespace Spring.Testing.NUnit
/// Test teardown method.
///
[TearDown]
- protected void TearDown()
+ public void TearDown()
{
try
{
@@ -349,6 +366,13 @@ namespace Spring.Testing.NUnit
{
logger.Error("OnTearDown error", ex);
}
+ finally
+ {
+ if (RegisterContextWithContextRegistry)
+ {
+ ContextRegistry.Clear();
+ }
+ }
}
///
diff --git a/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractSpringContextTests.cs b/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractSpringContextTests.cs
index fc8122f2..99dcae2f 100644
--- a/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractSpringContextTests.cs
+++ b/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractSpringContextTests.cs
@@ -43,17 +43,37 @@ namespace Spring.Testing.NUnit
/// Map of context keys returned by subclasses of this class, to
/// Spring contexts.
///
- private static IDictionary contextKeyToContextMap = new Hashtable();
+ private static readonly IDictionary contextKeyToContextMap;
+
+ ///
+ /// Static ctor to avoid "beforeFieldInit" problem.
+ ///
+ static AbstractSpringContextTests()
+ {
+ contextKeyToContextMap = new Hashtable();
+ }
+
+ ///
+ /// Disposes any cached context instance and removes it from cache.
+ ///
+ public static void ClearContextCache()
+ {
+ foreach(IApplicationContext ctx in contextKeyToContextMap.Values)
+ {
+ ctx.Dispose();
+ }
+ contextKeyToContextMap.Clear();
+ }
///
/// Logger available to subclasses.
///
- protected ILog logger;
+ protected readonly ILog logger;
///
/// Default constructor for AbstractSpringContextTests.
///
- public AbstractSpringContextTests()
+ protected AbstractSpringContextTests()
{
logger = LogManager.GetLogger(GetType());
}
diff --git a/test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.2003.csproj b/test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.2003.csproj
index ab14073a..855b37c7 100644
--- a/test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.2003.csproj
+++ b/test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.2003.csproj
@@ -94,6 +94,11 @@
Project = "{C5585365-561C-4EC4-8956-87FFBD9AB1CD}"
Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
/>
+
@@ -108,12 +113,7 @@
BuildAction = "None"
/>
-
@@ -121,11 +121,6 @@
RelPath = "Testing\NUnit\TestApplicationContext.xml"
BuildAction = "EmbeddedResource"
/>
-
diff --git a/test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.2008.csproj b/test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.2008.csproj
index 6fb5dde3..918d2cdf 100644
--- a/test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.2008.csproj
+++ b/test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.2008.csproj
@@ -2,7 +2,7 @@
Debug
AnyCPU
- 9.0.21022
+ 9.0.30729
2.0
{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}
Library
@@ -45,9 +45,7 @@
-
-
-
+
@@ -71,13 +69,11 @@
Spring.Data.Tests.2008
-
-
-
Always
+