From a80d66b206fb610a93274cc438aad6cb15f6e887 Mon Sep 17 00:00:00 2001
From: Russell Taylor <taylorrj@ornl.gov>
Date: Thu, 1 Sep 2011 18:24:49 +0000
Subject: [PATCH] Add static methods to prevent calling of test constructors
 multiple times. Re #2309.

---
 .../Algorithms/test/AlignDetectorsTest.h      |  4 ----
 .../CalculateTransmissionBeamSpreaderTest.h   |  2 --
 .../Algorithms/test/ChangeLogTimeTest.h       |  5 +++++
 .../Framework/Algorithms/test/ChopDataTest.h  |  5 +----
 .../Algorithms/test/ConjoinWorkspacesTest.h   |  5 +++++
 .../Algorithms/test/ConvertUnitsTest.h        |  5 -----
 .../Algorithms/test/CorrectKiKfTest.h         |  4 ++++
 .../Algorithms/test/CorrectToFileTest.h       |  4 ++++
 .../test/DetectorEfficiencyCorTest.h          |  7 ++++++-
 .../Algorithms/test/ExtractFFTSpectrumTest.h  |  3 ---
 .../Algorithms/test/FFTDerivativeTest.h       |  7 -------
 .../Framework/Algorithms/test/FFTTest.h       |  5 +++++
 .../Algorithms/test/FilterBadPulsesTest.h     |  5 +++++
 .../Algorithms/test/FilterByLogValueTest.h    |  5 +++++
 .../Algorithms/test/FilterByTimeTest.h        |  5 -----
 .../Algorithms/test/FindDeadDetectorsTest.h   |  8 --------
 .../test/FindDetectorsOutsideLimitsTest.h     |  8 --------
 .../Algorithms/test/GetDetectorOffsetsTest.h  |  4 ----
 .../Algorithms/test/GhostCorrectionTest.h     |  5 +++++
 .../Algorithms/test/He3TubeEfficiencyTest.h   |  5 +++++
 .../test/IdentifyNoisyDetectorsTest.h         |  6 +-----
 .../Algorithms/test/MultiplyDivideTest.in.h   |  3 +++
 .../Algorithms/test/NormaliseByCurrentTest.h  |  4 ----
 .../test/PlotAsymmetryByLogValueTest.h        |  4 ++++
 .../Algorithms/test/PlusMinusTest.in.h        |  3 +++
 .../Algorithms/test/PoissonErrorsTest.h       |  4 ++++
 .../Framework/Algorithms/test/QxyTest.h       |  8 +++++++-
 .../Framework/Algorithms/test/RebinTest.h     |  5 +++++
 .../Algorithms/test/RemoveLowResTOFTest.h     |  5 +++++
 .../Algorithms/test/RemovePromptPulseTest.h   |  5 +++++
 .../Algorithms/test/ShiftLogTimeTest.h        |  5 +++++
 .../Algorithms/test/SortEventsTest.h          |  5 +++++
 .../Algorithms/test/SpatialGroupingTest.h     |  3 ---
 .../Algorithms/test/SumNeighboursTest.h       | 19 -------------------
 .../Framework/Algorithms/test/TransposeTest.h |  4 ----
 .../Framework/Algorithms/test/UnwrapSNSTest.h |  5 +++++
 .../test/IntegratePeakTimeSlicesTest.h        |  5 -----
 .../Framework/Crystal/test/SaveIsawUBTest.h   | 12 +++---------
 .../CurveFitting/test/CompositeFunctionTest.h |  5 +++++
 .../CurveFitting/test/ConvolutionTest.h       |  5 -----
 .../Framework/CurveFitting/test/FitTest.h     |  5 +++++
 .../test/FuncMinimizerFactoryTest.h           |  5 +++++
 .../CurveFitting/test/FunctionFactoryTest.h   |  5 +++++
 .../CurveFitting/test/FunctionTest.h          |  5 +++++
 .../CurveFitting/test/IkedaCarpenterPVTest.h  |  4 ++++
 .../Framework/CurveFitting/test/LinearTest.h  |  5 +++++
 .../Framework/CurveFitting/test/MultiBGTest.h |  5 +++++
 .../test/PlotPeakByLogValueTest.h             |  5 +++++
 .../CurveFitting/test/ResolutionTest.h        |  4 ++++
 .../DataHandling/test/LoadMuonLogTest.h       |  6 ------
 .../test/SaveNexusProcessedTest.h             |  4 ++++
 .../DataObjects/test/EventListTest.h          |  5 +++++
 .../DataObjects/test/EventWorkspaceTest.h     |  4 ++++
 .../DataObjects/test/ManagedDataBlock2DTest.h |  5 +++++
 .../Framework/DataObjects/test/RefAxisTest.h  |  5 +++++
 .../test/TableWorkspacePropertyTest.h         |  5 +++++
 .../Framework/DataObjects/test/TofEventTest.h |  5 +++++
 .../test/WeightedEventNoTimeTest.h            |  6 ------
 .../DataObjects/test/WeightedEventTest.h      |  6 ------
 .../DataObjects/test/Workspace2DTest.h        |  5 +++++
 .../test/WorkspaceValidatorsTest.h            |  5 +++++
 .../Framework/Geometry/test/MDDimensionTest.h |  4 ++++
 .../Geometry/test/MDGeometryBasisTest.h       |  4 ----
 .../Framework/Geometry/test/MDGeometryTest.h  |  5 +++++
 .../Geometry/test/ParInstrumentTest.h         |  5 +++++
 .../Geometry/test/ParametrizedComponentTest.h |  4 ++++
 .../Framework/Kernel/test/RegexStringsTest.h  |  3 +++
 .../MDAlgorithms/test/CPRebinKeepPixTest.h    |  2 --
 .../MDAlgorithms/test/CobaltSWDTest.h         |  2 --
 .../MDAlgorithms/test/Load_MDWorkspaceTest.h  |  3 ---
 .../test/PlaneImplicitFunctionTest.h          |  4 ++++
 .../MDAlgorithms/test/QuadEnBackgroundTest.h  |  2 --
 .../MDAlgorithms/test/RunParamTest.h          |  2 --
 .../MDAlgorithms/test/SimulateMDDataTest.h    |  2 --
 .../MDAlgorithms/test/TobyFitSimulateTest.h   |  2 --
 .../test/MDDPoints_MemManagerTest.h           |  7 ++++++-
 .../MDDataObjects/test/MDDataPointTest.h      |  4 ++++
 .../MDDataObjects/test/MD_FileFactoryTest.h   |  2 --
 .../MDEvents/test/MDEventWorkspaceTest.h      |  5 +++++
 .../Framework/MDEvents/test/MDGridBoxTest.h   |  7 +++++--
 .../Framework/Nexus/test/NexusAPITest.h       |  5 +++++
 81 files changed, 246 insertions(+), 148 deletions(-)

diff --git a/Code/Mantid/Framework/Algorithms/test/AlignDetectorsTest.h b/Code/Mantid/Framework/Algorithms/test/AlignDetectorsTest.h
index 2cb43926a6c..b5d6b6b8ce6 100644
--- a/Code/Mantid/Framework/Algorithms/test/AlignDetectorsTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/AlignDetectorsTest.h
@@ -18,10 +18,6 @@ using namespace Mantid::API;
 class AlignDetectorsTest : public CxxTest::TestSuite
 {
 public:
-  AlignDetectorsTest()
-  {
-  }
-
   /** Setup for loading raw data */
   void setUp_Raw()
   {
diff --git a/Code/Mantid/Framework/Algorithms/test/CalculateTransmissionBeamSpreaderTest.h b/Code/Mantid/Framework/Algorithms/test/CalculateTransmissionBeamSpreaderTest.h
index a06a4da5b72..254363edb93 100644
--- a/Code/Mantid/Framework/Algorithms/test/CalculateTransmissionBeamSpreaderTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/CalculateTransmissionBeamSpreaderTest.h
@@ -17,8 +17,6 @@ using namespace Mantid::DataObjects;
 class CalculateTransmissionBeamSpreaderTest : public CxxTest::TestSuite
 {
 public:
-  CalculateTransmissionBeamSpreaderTest() : trans() {}
-  
   void testName()
   {
     TS_ASSERT_EQUALS( trans.name(), "CalculateTransmissionBeamSpreader" )
diff --git a/Code/Mantid/Framework/Algorithms/test/ChangeLogTimeTest.h b/Code/Mantid/Framework/Algorithms/test/ChangeLogTimeTest.h
index c0edf5cfd22..5d551c7232f 100644
--- a/Code/Mantid/Framework/Algorithms/test/ChangeLogTimeTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/ChangeLogTimeTest.h
@@ -15,6 +15,11 @@ using namespace Mantid::Kernel;
 class ChangeLogTimeTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static ChangeLogTimeTest *createSuite() { return new ChangeLogTimeTest(); }
+  static void destroySuite( ChangeLogTimeTest *suite ) { delete suite; }
+
   /// Set up the parameters for what the tests do.
   ChangeLogTimeTest()
   {
diff --git a/Code/Mantid/Framework/Algorithms/test/ChopDataTest.h b/Code/Mantid/Framework/Algorithms/test/ChopDataTest.h
index ec5079b8d4b..9749c2e40f8 100644
--- a/Code/Mantid/Framework/Algorithms/test/ChopDataTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/ChopDataTest.h
@@ -11,10 +11,7 @@ using namespace Mantid::Algorithms;
 
 class ChopDataTest : public CxxTest::TestSuite
 {
-
 public:
-  ChopDataTest() {}
-  ~ChopDataTest() {}
 
   void testMetaInfo()
   {
@@ -103,4 +100,4 @@ private:
 
 };
 
-#endif
\ No newline at end of file
+#endif
diff --git a/Code/Mantid/Framework/Algorithms/test/ConjoinWorkspacesTest.h b/Code/Mantid/Framework/Algorithms/test/ConjoinWorkspacesTest.h
index df394a6336f..3b26a9dff28 100644
--- a/Code/Mantid/Framework/Algorithms/test/ConjoinWorkspacesTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/ConjoinWorkspacesTest.h
@@ -16,6 +16,11 @@ using namespace Mantid::DataObjects;
 class ConjoinWorkspacesTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static ConjoinWorkspacesTest *createSuite() { return new ConjoinWorkspacesTest(); }
+  static void destroySuite( ConjoinWorkspacesTest *suite ) { delete suite; }
+
   ConjoinWorkspacesTest() :
     ws1Name("ConjoinWorkspacesTest_grp1"), ws2Name("ConjoinWorkspacesTest_grp2")
   {
diff --git a/Code/Mantid/Framework/Algorithms/test/ConvertUnitsTest.h b/Code/Mantid/Framework/Algorithms/test/ConvertUnitsTest.h
index c0821629498..757bfa7a5d7 100644
--- a/Code/Mantid/Framework/Algorithms/test/ConvertUnitsTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/ConvertUnitsTest.h
@@ -24,11 +24,6 @@ using namespace Mantid::DataObjects;
 class ConvertUnitsTest : public CxxTest::TestSuite
 {
 public:
-
-  ConvertUnitsTest()
-  {
-  }
-
   void setup_WS()
   {
     // Set up a small workspace for testing
diff --git a/Code/Mantid/Framework/Algorithms/test/CorrectKiKfTest.h b/Code/Mantid/Framework/Algorithms/test/CorrectKiKfTest.h
index 2562c41010b..1293b5c1afc 100644
--- a/Code/Mantid/Framework/Algorithms/test/CorrectKiKfTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/CorrectKiKfTest.h
@@ -19,6 +19,10 @@ using namespace Mantid::DataObjects;
 class CorrectKiKfTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static CorrectKiKfTest *createSuite() { return new CorrectKiKfTest(); }
+  static void destroySuite( CorrectKiKfTest *suite ) { delete suite; }
 
   CorrectKiKfTest(): inputWSname("testInput"), inputEvWSname("testEvInput"), outputWSname("testOutput"), outputEvWSname("testEvOutput")
   {
diff --git a/Code/Mantid/Framework/Algorithms/test/CorrectToFileTest.h b/Code/Mantid/Framework/Algorithms/test/CorrectToFileTest.h
index 619b85d1a8a..84f2fd16ff8 100644
--- a/Code/Mantid/Framework/Algorithms/test/CorrectToFileTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/CorrectToFileTest.h
@@ -18,6 +18,10 @@ using Mantid::API::MatrixWorkspace_sptr;
 class CorrectToFileTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static CorrectToFileTest *createSuite() { return new CorrectToFileTest(); }
+  static void destroySuite( CorrectToFileTest *suite ) { delete suite; }
 
   CorrectToFileTest() : inputFile("DIRECT.041")
   {}
diff --git a/Code/Mantid/Framework/Algorithms/test/DetectorEfficiencyCorTest.h b/Code/Mantid/Framework/Algorithms/test/DetectorEfficiencyCorTest.h
index bf7b40e6ffe..022000ccd4a 100644
--- a/Code/Mantid/Framework/Algorithms/test/DetectorEfficiencyCorTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/DetectorEfficiencyCorTest.h
@@ -36,7 +36,12 @@ using Mantid::MantidVecPtr;
 class DetectorEfficiencyCorTest : public CxxTest::TestSuite
 {
 public:
-    DetectorEfficiencyCorTest() :
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static DetectorEfficiencyCorTest *createSuite() { return new DetectorEfficiencyCorTest(); }
+  static void destroySuite( DetectorEfficiencyCorTest *suite ) { delete suite; }
+
+  DetectorEfficiencyCorTest() :
       m_InoutWS("DetectorEfficiencyCorTest_input_workspace"),
       m_OutWS("DetectorEfficiencyCorTest_output_workspace")
   {
diff --git a/Code/Mantid/Framework/Algorithms/test/ExtractFFTSpectrumTest.h b/Code/Mantid/Framework/Algorithms/test/ExtractFFTSpectrumTest.h
index ae6d23373b6..89f7ea2ff11 100644
--- a/Code/Mantid/Framework/Algorithms/test/ExtractFFTSpectrumTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/ExtractFFTSpectrumTest.h
@@ -17,9 +17,6 @@ class ExtractFFTSpectrumTest : public CxxTest::TestSuite
 {
 
 public:
-  ExtractFFTSpectrumTest() {}
-  ~ExtractFFTSpectrumTest() {}
-
   void testMetaInfo()
   {
     alg = new ExtractFFTSpectrum();
diff --git a/Code/Mantid/Framework/Algorithms/test/FFTDerivativeTest.h b/Code/Mantid/Framework/Algorithms/test/FFTDerivativeTest.h
index 4d6a2329b87..8cb90f5500a 100644
--- a/Code/Mantid/Framework/Algorithms/test/FFTDerivativeTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/FFTDerivativeTest.h
@@ -15,13 +15,6 @@ using namespace Mantid::API;
 class FFTDerivativeTest : public CxxTest::TestSuite
 {
 public:
-  FFTDerivativeTest()
-  {
-  }
-  ~FFTDerivativeTest()
-  {
-  }
-
   void testGaussianDerivative()
   {
     const int N = 100;
diff --git a/Code/Mantid/Framework/Algorithms/test/FFTTest.h b/Code/Mantid/Framework/Algorithms/test/FFTTest.h
index aba5422c85d..da720f10988 100644
--- a/Code/Mantid/Framework/Algorithms/test/FFTTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/FFTTest.h
@@ -15,6 +15,11 @@ using namespace Mantid::API;
 class FFTTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static FFTTest *createSuite() { return new FFTTest(); }
+  static void destroySuite( FFTTest *suite ) { delete suite; }
+
   FFTTest():dX(0.2),PI(3.1415926535897932384626433832795),h(sqrt(PI/3)),a(PI*PI/3)
   {
   }
diff --git a/Code/Mantid/Framework/Algorithms/test/FilterBadPulsesTest.h b/Code/Mantid/Framework/Algorithms/test/FilterBadPulsesTest.h
index 23a8e934dd3..d3c6b9f7ec1 100644
--- a/Code/Mantid/Framework/Algorithms/test/FilterBadPulsesTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/FilterBadPulsesTest.h
@@ -14,6 +14,11 @@ using namespace Mantid::DataObjects;
 class FilterBadPulsesTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static FilterBadPulsesTest *createSuite() { return new FilterBadPulsesTest(); }
+  static void destroySuite( FilterBadPulsesTest *suite ) { delete suite; }
+
   FilterBadPulsesTest(): inputWS("testInput"), outputWS("testOutput")
   {
   }
diff --git a/Code/Mantid/Framework/Algorithms/test/FilterByLogValueTest.h b/Code/Mantid/Framework/Algorithms/test/FilterByLogValueTest.h
index 19f26bf16c4..2e47f25742e 100644
--- a/Code/Mantid/Framework/Algorithms/test/FilterByLogValueTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/FilterByLogValueTest.h
@@ -27,6 +27,11 @@ using namespace Mantid::API;
 class FilterByLogValueTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static FilterByLogValueTest *createSuite() { return new FilterByLogValueTest(); }
+  static void destroySuite( FilterByLogValueTest *suite ) { delete suite; }
+
   FilterByLogValueTest()
   {
     inputWS = "eventWS";
diff --git a/Code/Mantid/Framework/Algorithms/test/FilterByTimeTest.h b/Code/Mantid/Framework/Algorithms/test/FilterByTimeTest.h
index 5ac22f29258..c1af58dd17e 100644
--- a/Code/Mantid/Framework/Algorithms/test/FilterByTimeTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/FilterByTimeTest.h
@@ -24,11 +24,6 @@ using namespace Mantid::API;
 class FilterByTimeTest : public CxxTest::TestSuite
 {
 public:
-  FilterByTimeTest()
-  {
-  }
-
-
   /** Setup for loading raw data */
   void setUp_Event()
   {
diff --git a/Code/Mantid/Framework/Algorithms/test/FindDeadDetectorsTest.h b/Code/Mantid/Framework/Algorithms/test/FindDeadDetectorsTest.h
index 67611f0e91f..fbe0319fb87 100644
--- a/Code/Mantid/Framework/Algorithms/test/FindDeadDetectorsTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/FindDeadDetectorsTest.h
@@ -20,14 +20,6 @@ using namespace Mantid::DataObjects;
 class FindDeadDetectorsTest : public CxxTest::TestSuite
 {
 public:
-
-  FindDeadDetectorsTest()
-  {
-  }
-
-  ~FindDeadDetectorsTest()
-  {}
-
   void testInit()
   {
     FindDeadDetectors alg;
diff --git a/Code/Mantid/Framework/Algorithms/test/FindDetectorsOutsideLimitsTest.h b/Code/Mantid/Framework/Algorithms/test/FindDetectorsOutsideLimitsTest.h
index 462b86d38f8..c8aae1d5e1e 100644
--- a/Code/Mantid/Framework/Algorithms/test/FindDetectorsOutsideLimitsTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/FindDetectorsOutsideLimitsTest.h
@@ -23,14 +23,6 @@ using namespace Mantid::Kernel;
 class FindDetectorsOutsideLimitsTest : public CxxTest::TestSuite
 {
 public:
-
-  FindDetectorsOutsideLimitsTest()
-  {
-  }
-
-  ~FindDetectorsOutsideLimitsTest()
-  {}
-
   void testInit()
   {
     FindDetectorsOutsideLimits alg;
diff --git a/Code/Mantid/Framework/Algorithms/test/GetDetectorOffsetsTest.h b/Code/Mantid/Framework/Algorithms/test/GetDetectorOffsetsTest.h
index 04023c57bbd..8cca1ac7867 100644
--- a/Code/Mantid/Framework/Algorithms/test/GetDetectorOffsetsTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/GetDetectorOffsetsTest.h
@@ -18,10 +18,6 @@ using Mantid::DataObjects::OffsetsWorkspace_sptr;
 class GetDetectorOffsetsTest : public CxxTest::TestSuite
 {
 public:
-  GetDetectorOffsetsTest()
-  {
-  }
-
   void testTheBasics()
   {
     TS_ASSERT_EQUALS( offsets.name(), "GetDetectorOffsets" );
diff --git a/Code/Mantid/Framework/Algorithms/test/GhostCorrectionTest.h b/Code/Mantid/Framework/Algorithms/test/GhostCorrectionTest.h
index caeacab96a6..ee43acecf19 100644
--- a/Code/Mantid/Framework/Algorithms/test/GhostCorrectionTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/GhostCorrectionTest.h
@@ -29,6 +29,11 @@ public:
   double BIN_DELTA;
   int NUMPIXELS, NUMBINS;
 
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static GhostCorrectionTest *createSuite() { return new GhostCorrectionTest(); }
+  static void destroySuite( GhostCorrectionTest *suite ) { delete suite; }
+
   GhostCorrectionTest()
   {
     BIN_DELTA = 2.0;
diff --git a/Code/Mantid/Framework/Algorithms/test/He3TubeEfficiencyTest.h b/Code/Mantid/Framework/Algorithms/test/He3TubeEfficiencyTest.h
index 690dc28e07e..f924b35b567 100644
--- a/Code/Mantid/Framework/Algorithms/test/He3TubeEfficiencyTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/He3TubeEfficiencyTest.h
@@ -24,6 +24,11 @@ using namespace std;
 class He3TubeEfficiencyTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static He3TubeEfficiencyTest *createSuite() { return new He3TubeEfficiencyTest(); }
+  static void destroySuite( He3TubeEfficiencyTest *suite ) { delete suite; }
+
   He3TubeEfficiencyTest() : inputWS("testInput"), inputEvWS("testEvInput")
   {
   }
diff --git a/Code/Mantid/Framework/Algorithms/test/IdentifyNoisyDetectorsTest.h b/Code/Mantid/Framework/Algorithms/test/IdentifyNoisyDetectorsTest.h
index ccc9a964445..f4207cf2e0c 100644
--- a/Code/Mantid/Framework/Algorithms/test/IdentifyNoisyDetectorsTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/IdentifyNoisyDetectorsTest.h
@@ -11,11 +11,7 @@ using namespace Mantid::Algorithms;
 
 class IdentifyNoisyDetectorsTest : public CxxTest::TestSuite
 {
-
 public:
-  IdentifyNoisyDetectorsTest() {}
-  ~IdentifyNoisyDetectorsTest() {}
-
   void testMetaInfo()
   {
     alg = new IdentifyNoisyDetectors();
@@ -96,4 +92,4 @@ private:
 
 };
 
-#endif /* IDENTIFYNOISYDETECTORSTEST_H_ */
\ No newline at end of file
+#endif /* IDENTIFYNOISYDETECTORSTEST_H_ */
diff --git a/Code/Mantid/Framework/Algorithms/test/MultiplyDivideTest.in.h b/Code/Mantid/Framework/Algorithms/test/MultiplyDivideTest.in.h
index 6c0e5dd8345..3397f8ae160 100644
--- a/Code/Mantid/Framework/Algorithms/test/MultiplyDivideTest.in.h
+++ b/Code/Mantid/Framework/Algorithms/test/MultiplyDivideTest.in.h
@@ -31,6 +31,9 @@ public:
   bool DO_DIVIDE;
   std::string message;
 
+  static @MULTIPLYDIVIDETEST_CLASS@ *createSuite() { return new @MULTIPLYDIVIDETEST_CLASS@(); }
+  static void destroySuite( @MULTIPLYDIVIDETEST_CLASS@ *suite ) { delete suite; }
+
   @MULTIPLYDIVIDETEST_CLASS@()
   {
     DO_DIVIDE = @MULTIPLYDIVIDETEST_DO_DIVIDE@;
diff --git a/Code/Mantid/Framework/Algorithms/test/NormaliseByCurrentTest.h b/Code/Mantid/Framework/Algorithms/test/NormaliseByCurrentTest.h
index 728c5442420..8ffae9285a0 100644
--- a/Code/Mantid/Framework/Algorithms/test/NormaliseByCurrentTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/NormaliseByCurrentTest.h
@@ -18,10 +18,6 @@ using namespace Mantid::DataObjects;
 class NormaliseByCurrentTest : public CxxTest::TestSuite
 {
 public:
-  NormaliseByCurrentTest()
-  {
-  }
-
   void testName()
   {
     TS_ASSERT_EQUALS( norm.name(), "NormaliseByCurrent" );
diff --git a/Code/Mantid/Framework/Algorithms/test/PlotAsymmetryByLogValueTest.h b/Code/Mantid/Framework/Algorithms/test/PlotAsymmetryByLogValueTest.h
index 0f91c103f8a..e0c7d61a7ea 100644
--- a/Code/Mantid/Framework/Algorithms/test/PlotAsymmetryByLogValueTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/PlotAsymmetryByLogValueTest.h
@@ -18,6 +18,10 @@ using namespace Mantid::DataObjects;
 class PlotAsymmetryByLogValueTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static PlotAsymmetryByLogValueTest *createSuite() { return new PlotAsymmetryByLogValueTest(); }
+  static void destroySuite( PlotAsymmetryByLogValueTest *suite ) { delete suite; }
 
     PlotAsymmetryByLogValueTest()
       :firstRun("MUSR00015189.nxs"),lastRun("MUSR00015199.nxs")
diff --git a/Code/Mantid/Framework/Algorithms/test/PlusMinusTest.in.h b/Code/Mantid/Framework/Algorithms/test/PlusMinusTest.in.h
index 3fbf25b1c6f..44e5295a794 100644
--- a/Code/Mantid/Framework/Algorithms/test/PlusMinusTest.in.h
+++ b/Code/Mantid/Framework/Algorithms/test/PlusMinusTest.in.h
@@ -32,6 +32,9 @@ public:
   bool DO_PLUS;
   std::string message;
 
+  static @PLUSMINUSTEST_CLASS@ *createSuite() { return new @PLUSMINUSTEST_CLASS@(); }
+  static void destroySuite( @PLUSMINUSTEST_CLASS@ *suite ) { delete suite; }
+
   @PLUSMINUSTEST_CLASS@()
   {
     numBins = 10;
diff --git a/Code/Mantid/Framework/Algorithms/test/PoissonErrorsTest.h b/Code/Mantid/Framework/Algorithms/test/PoissonErrorsTest.h
index 13e12de53e9..81040355f17 100644
--- a/Code/Mantid/Framework/Algorithms/test/PoissonErrorsTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/PoissonErrorsTest.h
@@ -20,6 +20,10 @@ using namespace Mantid::DataObjects;
 class PoissonErrorsTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static PoissonErrorsTest *createSuite() { return new PoissonErrorsTest(); }
+  static void destroySuite( PoissonErrorsTest *suite ) { delete suite; }
 
 	PoissonErrorsTest()
 	{
diff --git a/Code/Mantid/Framework/Algorithms/test/QxyTest.h b/Code/Mantid/Framework/Algorithms/test/QxyTest.h
index 1454ba5c3d4..7890899fa66 100644
--- a/Code/Mantid/Framework/Algorithms/test/QxyTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/QxyTest.h
@@ -12,6 +12,13 @@ using namespace Mantid::Kernel;
 class QxyTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static QxyTest *createSuite() { return new QxyTest(); }
+  static void destroySuite( QxyTest *suite ) { delete suite; }
+
+  QxyTest() : m_inputWS("QxyTest_input_in_wav") {}
+
   void testName()
   {
     TS_ASSERT_EQUALS( qxy.name(), "Qxy" )
@@ -136,7 +143,6 @@ public:
     Mantid::API::AnalysisDataService::Instance().remove(outputWS);
   }
 
-  QxyTest() : m_inputWS("QxyTest_input_in_wav") {}
 private:
   Mantid::Algorithms::Qxy qxy;
   const std::string m_inputWS;
diff --git a/Code/Mantid/Framework/Algorithms/test/RebinTest.h b/Code/Mantid/Framework/Algorithms/test/RebinTest.h
index e2a2af75fa7..6b7a64fad1c 100644
--- a/Code/Mantid/Framework/Algorithms/test/RebinTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/RebinTest.h
@@ -24,6 +24,11 @@ public:
   double BIN_DELTA;
   int NUMPIXELS, NUMBINS;
 
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static RebinTest *createSuite() { return new RebinTest(); }
+  static void destroySuite( RebinTest *suite ) { delete suite; }
+
   RebinTest()
   {
     BIN_DELTA = 2.0;
diff --git a/Code/Mantid/Framework/Algorithms/test/RemoveLowResTOFTest.h b/Code/Mantid/Framework/Algorithms/test/RemoveLowResTOFTest.h
index 12fcdc2c0e3..1ee08283f9f 100644
--- a/Code/Mantid/Framework/Algorithms/test/RemoveLowResTOFTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/RemoveLowResTOFTest.h
@@ -47,6 +47,11 @@ private:
   }
 
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static RemoveLowResTOFTest *createSuite() { return new RemoveLowResTOFTest(); }
+  static void destroySuite( RemoveLowResTOFTest *suite ) { delete suite; }
+
   RemoveLowResTOFTest()
   {
     BIN_DELTA = 2.;
diff --git a/Code/Mantid/Framework/Algorithms/test/RemovePromptPulseTest.h b/Code/Mantid/Framework/Algorithms/test/RemovePromptPulseTest.h
index d876103e629..260ad791cd9 100644
--- a/Code/Mantid/Framework/Algorithms/test/RemovePromptPulseTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/RemovePromptPulseTest.h
@@ -46,6 +46,11 @@ private:
   }
 
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static RemovePromptPulseTest *createSuite() { return new RemovePromptPulseTest(); }
+  static void destroySuite( RemovePromptPulseTest *suite ) { delete suite; }
+
   RemovePromptPulseTest()
   {
     BIN_DELTA = 100.;
diff --git a/Code/Mantid/Framework/Algorithms/test/ShiftLogTimeTest.h b/Code/Mantid/Framework/Algorithms/test/ShiftLogTimeTest.h
index d993abaebd2..78d261a49a3 100644
--- a/Code/Mantid/Framework/Algorithms/test/ShiftLogTimeTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/ShiftLogTimeTest.h
@@ -19,6 +19,11 @@ using namespace Mantid::Kernel;
 class ShiftLogTimeTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static ShiftLogTimeTest *createSuite() { return new ShiftLogTimeTest(); }
+  static void destroySuite( ShiftLogTimeTest *suite ) { delete suite; }
+
   /// Set up the parameters for what the tests do.
   ShiftLogTimeTest()
   {
diff --git a/Code/Mantid/Framework/Algorithms/test/SortEventsTest.h b/Code/Mantid/Framework/Algorithms/test/SortEventsTest.h
index 4099d016ad7..3eab063241d 100644
--- a/Code/Mantid/Framework/Algorithms/test/SortEventsTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/SortEventsTest.h
@@ -22,6 +22,11 @@ public:
   double BIN_DELTA;
   int NUMPIXELS, NUMBINS;
 
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static SortEventsTest *createSuite() { return new SortEventsTest(); }
+  static void destroySuite( SortEventsTest *suite ) { delete suite; }
+
   SortEventsTest()
   {
     BIN_DELTA = 2.0;
diff --git a/Code/Mantid/Framework/Algorithms/test/SpatialGroupingTest.h b/Code/Mantid/Framework/Algorithms/test/SpatialGroupingTest.h
index 8d6c76d58c9..dce2d5de50a 100644
--- a/Code/Mantid/Framework/Algorithms/test/SpatialGroupingTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/SpatialGroupingTest.h
@@ -18,9 +18,6 @@
 class SpatialGroupingTest : public CxxTest::TestSuite
 {
 public:
-  SpatialGroupingTest() {}
-  ~SpatialGroupingTest() {}
-
   void testMetaInfo()
   {
     alg = new Mantid::Algorithms::SpatialGrouping();
diff --git a/Code/Mantid/Framework/Algorithms/test/SumNeighboursTest.h b/Code/Mantid/Framework/Algorithms/test/SumNeighboursTest.h
index 1f6e1f68a4d..7707b17ff39 100644
--- a/Code/Mantid/Framework/Algorithms/test/SumNeighboursTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/SumNeighboursTest.h
@@ -19,25 +19,6 @@ using namespace Mantid::DataObjects;
 class SumNeighboursTest : public CxxTest::TestSuite
 {
 public:
-
-  SumNeighboursTest()
-  {
-//    outputSpace1 = "SNAP_sum";
-//    inputSpace = "SNAP";
-//
-//    Mantid::NeXus::LoadSNSEventNexus loader;
-//    loader.initialize();
-//    loader.setPropertyValue("Filename","/home/janik/data/SNAP_4105_event.nxs");
-//    loader.setPropertyValue("OutputWorkspace",inputSpace);
-//    loader.execute();
-
-  }
-
-  ~SumNeighboursTest()
-  {}
-
-
-
   void testTheBasics()
   {
     TS_ASSERT_EQUALS( alg.name(), "SumNeighbours" );
diff --git a/Code/Mantid/Framework/Algorithms/test/TransposeTest.h b/Code/Mantid/Framework/Algorithms/test/TransposeTest.h
index 79c2781255b..91c13846cdb 100644
--- a/Code/Mantid/Framework/Algorithms/test/TransposeTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/TransposeTest.h
@@ -16,11 +16,7 @@ using namespace Mantid::DataObjects;
 
 class TransposeTest : public CxxTest::TestSuite
 {
-
 public:
-  TransposeTest() {}
-  ~TransposeTest() {}
-
   void testMetaInfo()
   {
     transpose = new Transpose();
diff --git a/Code/Mantid/Framework/Algorithms/test/UnwrapSNSTest.h b/Code/Mantid/Framework/Algorithms/test/UnwrapSNSTest.h
index 9a2ff41ef81..acaa299c3bb 100644
--- a/Code/Mantid/Framework/Algorithms/test/UnwrapSNSTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/UnwrapSNSTest.h
@@ -39,6 +39,11 @@ private:
   }
 
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static UnwrapSNSTest *createSuite() { return new UnwrapSNSTest(); }
+  static void destroySuite( UnwrapSNSTest *suite ) { delete suite; }
+
   UnwrapSNSTest()
   {
     BIN_DELTA = 2.;
diff --git a/Code/Mantid/Framework/Crystal/test/IntegratePeakTimeSlicesTest.h b/Code/Mantid/Framework/Crystal/test/IntegratePeakTimeSlicesTest.h
index 4a02f653da1..953a77defa8 100644
--- a/Code/Mantid/Framework/Crystal/test/IntegratePeakTimeSlicesTest.h
+++ b/Code/Mantid/Framework/Crystal/test/IntegratePeakTimeSlicesTest.h
@@ -48,11 +48,6 @@ using namespace std;
 class IntegratePeakTimeSlicesTest: public CxxTest::TestSuite
 {
 public:
-  IntegratePeakTimeSlicesTest()
-  {
-
-  }
-
   void test_abc()
   {
     int NRC = 30;
diff --git a/Code/Mantid/Framework/Crystal/test/SaveIsawUBTest.h b/Code/Mantid/Framework/Crystal/test/SaveIsawUBTest.h
index 25dd8365b55..90ebde39c49 100644
--- a/Code/Mantid/Framework/Crystal/test/SaveIsawUBTest.h
+++ b/Code/Mantid/Framework/Crystal/test/SaveIsawUBTest.h
@@ -36,18 +36,12 @@ using namespace std;
 class SaveIsawUBTest: public CxxTest::TestSuite
 {
 public:
-
-  SaveIsawUBTest()
-  {
-
-  }
-
   void test_Init()
   {
     SaveIsawUB alg;
-TS_ASSERT_THROWS_NOTHING  ( alg.initialize() )
-  TS_ASSERT( alg.isInitialized() )
-}
+    TS_ASSERT_THROWS_NOTHING  ( alg.initialize() )
+    TS_ASSERT( alg.isInitialized() )
+  }
 
 void test_exec()
 {
diff --git a/Code/Mantid/Framework/CurveFitting/test/CompositeFunctionTest.h b/Code/Mantid/Framework/CurveFitting/test/CompositeFunctionTest.h
index c912bb19a1b..0d7e750360a 100644
--- a/Code/Mantid/Framework/CurveFitting/test/CompositeFunctionTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/CompositeFunctionTest.h
@@ -169,6 +169,11 @@ DECLARE_FUNCTION(CurveFittingGauss);
 class CompositeFunctionTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static CompositeFunctionTest *createSuite() { return new CompositeFunctionTest(); }
+  static void destroySuite( CompositeFunctionTest *suite ) { delete suite; }
+
   CompositeFunctionTest()
   {
     Kernel::ConfigService::Instance().setString("curvefitting.peakRadius","100");
diff --git a/Code/Mantid/Framework/CurveFitting/test/ConvolutionTest.h b/Code/Mantid/Framework/CurveFitting/test/ConvolutionTest.h
index 5cd6075e3bc..2af30cf33a8 100644
--- a/Code/Mantid/Framework/CurveFitting/test/ConvolutionTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/ConvolutionTest.h
@@ -146,11 +146,6 @@ DECLARE_FUNCTION(ConvolutionTest_Linear);
 class ConvolutionTest : public CxxTest::TestSuite
 {
 public:
-  ConvolutionTest()
-  {
-    //FrameworkManager::Instance();
-  }
-
   void testFunction()
   {
     Convolution conv;
diff --git a/Code/Mantid/Framework/CurveFitting/test/FitTest.h b/Code/Mantid/Framework/CurveFitting/test/FitTest.h
index ae6cbe4111c..fa891593398 100644
--- a/Code/Mantid/Framework/CurveFitting/test/FitTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/FitTest.h
@@ -148,6 +148,11 @@ DECLARE_FUNCTION(FitTest_Linear);
 class FitTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static FitTest *createSuite() { return new FitTest(); }
+  static void destroySuite( FitTest *suite ) { delete suite; }
+
   FitTest()
   {
     Kernel::ConfigService::Instance().setString("curvefitting.peakRadius","100");
diff --git a/Code/Mantid/Framework/CurveFitting/test/FuncMinimizerFactoryTest.h b/Code/Mantid/Framework/CurveFitting/test/FuncMinimizerFactoryTest.h
index 4ddab05a0ad..555d182de5d 100644
--- a/Code/Mantid/Framework/CurveFitting/test/FuncMinimizerFactoryTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/FuncMinimizerFactoryTest.h
@@ -57,6 +57,11 @@ DECLARE_FUNCMINIMIZER(FuncMinimizerFactoryTest_A, nedtur);
 class FuncMinimizerFactoryTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static FuncMinimizerFactoryTest *createSuite() { return new FuncMinimizerFactoryTest(); }
+  static void destroySuite( FuncMinimizerFactoryTest *suite ) { delete suite; }
+
   FuncMinimizerFactoryTest()
   {
     Mantid::API::FrameworkManager::Instance();
diff --git a/Code/Mantid/Framework/CurveFitting/test/FunctionFactoryTest.h b/Code/Mantid/Framework/CurveFitting/test/FunctionFactoryTest.h
index 0662542912e..8ab8b2d9785 100644
--- a/Code/Mantid/Framework/CurveFitting/test/FunctionFactoryTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/FunctionFactoryTest.h
@@ -166,6 +166,11 @@ DECLARE_FUNCTION(FunctionFactoryTest_CompFunctB);
 class FunctionFactoryTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static FunctionFactoryTest *createSuite() { return new FunctionFactoryTest(); }
+  static void destroySuite( FunctionFactoryTest *suite ) { delete suite; }
+
   FunctionFactoryTest()
   {
     Mantid::API::FrameworkManager::Instance();
diff --git a/Code/Mantid/Framework/CurveFitting/test/FunctionTest.h b/Code/Mantid/Framework/CurveFitting/test/FunctionTest.h
index 38aecec0ce6..6c89e6efa63 100644
--- a/Code/Mantid/Framework/CurveFitting/test/FunctionTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/FunctionTest.h
@@ -104,6 +104,11 @@ public:
 class FunctionTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static FunctionTest *createSuite() { return new FunctionTest(); }
+  static void destroySuite( FunctionTest *suite ) { delete suite; }
+
   FunctionTest()
   {
     FrameworkManager::Instance();
diff --git a/Code/Mantid/Framework/CurveFitting/test/IkedaCarpenterPVTest.h b/Code/Mantid/Framework/CurveFitting/test/IkedaCarpenterPVTest.h
index ba6c11602d8..26e0eb8fe2d 100644
--- a/Code/Mantid/Framework/CurveFitting/test/IkedaCarpenterPVTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/IkedaCarpenterPVTest.h
@@ -32,6 +32,10 @@ using namespace Mantid::DataHandling;
 class IkedaCarpenterPVTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static IkedaCarpenterPVTest *createSuite() { return new IkedaCarpenterPVTest(); }
+  static void destroySuite( IkedaCarpenterPVTest *suite ) { delete suite; }
 
   IkedaCarpenterPVTest()
   {
diff --git a/Code/Mantid/Framework/CurveFitting/test/LinearTest.h b/Code/Mantid/Framework/CurveFitting/test/LinearTest.h
index 949bc39c7fd..52d47b35541 100644
--- a/Code/Mantid/Framework/CurveFitting/test/LinearTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/LinearTest.h
@@ -11,6 +11,11 @@ using namespace Mantid::Kernel;
 class LinearTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static LinearTest *createSuite() { return new LinearTest(); }
+  static void destroySuite( LinearTest *suite ) { delete suite; }
+
   LinearTest()
   {
     c0 = 10.0;
diff --git a/Code/Mantid/Framework/CurveFitting/test/MultiBGTest.h b/Code/Mantid/Framework/CurveFitting/test/MultiBGTest.h
index 3de4eb1633b..a2f0e3f9ed9 100644
--- a/Code/Mantid/Framework/CurveFitting/test/MultiBGTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/MultiBGTest.h
@@ -45,6 +45,11 @@ private:
 class MultiBGTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static MultiBGTest *createSuite() { return new MultiBGTest(); }
+  static void destroySuite( MultiBGTest *suite ) { delete suite; }
+
   MultiBGTest()
   {
     a.resize(2);    b.resize(2);
diff --git a/Code/Mantid/Framework/CurveFitting/test/PlotPeakByLogValueTest.h b/Code/Mantid/Framework/CurveFitting/test/PlotPeakByLogValueTest.h
index fc125585fc3..fd6b1f22a7c 100644
--- a/Code/Mantid/Framework/CurveFitting/test/PlotPeakByLogValueTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/PlotPeakByLogValueTest.h
@@ -45,6 +45,11 @@ private:
 class PlotPeakByLogValueTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static PlotPeakByLogValueTest *createSuite() { return new PlotPeakByLogValueTest(); }
+  static void destroySuite( PlotPeakByLogValueTest *suite ) { delete suite; }
+
   PlotPeakByLogValueTest()
   {
     FrameworkManager::Instance();
diff --git a/Code/Mantid/Framework/CurveFitting/test/ResolutionTest.h b/Code/Mantid/Framework/CurveFitting/test/ResolutionTest.h
index 79008cc89e0..e20fa52e0d3 100644
--- a/Code/Mantid/Framework/CurveFitting/test/ResolutionTest.h
+++ b/Code/Mantid/Framework/CurveFitting/test/ResolutionTest.h
@@ -89,6 +89,10 @@ DECLARE_FUNCTION(ResolutionTest_Gauss);
 class ResolutionTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static ResolutionTest *createSuite() { return new ResolutionTest(); }
+  static void destroySuite( ResolutionTest *suite ) { delete suite; }
 
   ResolutionTest()
     :resH(3),resS(acos(0.)),
diff --git a/Code/Mantid/Framework/DataHandling/test/LoadMuonLogTest.h b/Code/Mantid/Framework/DataHandling/test/LoadMuonLogTest.h
index d4a6a769a76..58aaf4f334d 100644
--- a/Code/Mantid/Framework/DataHandling/test/LoadMuonLogTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/LoadMuonLogTest.h
@@ -30,12 +30,6 @@ using Mantid::DataHandling::LoadMuonLog;
 class LoadMuonLogTest : public CxxTest::TestSuite
 {
 public:
-
-  LoadMuonLogTest()
-  {
-	  //initialise framework manager to allow logging
-	//Mantid::API::FrameworkManager::Instance().initialize();
-  }
   void testInit()
   {
     TS_ASSERT( !loader.isInitialized() );
diff --git a/Code/Mantid/Framework/DataHandling/test/SaveNexusProcessedTest.h b/Code/Mantid/Framework/DataHandling/test/SaveNexusProcessedTest.h
index d033da6b0ad..5fe3727102f 100644
--- a/Code/Mantid/Framework/DataHandling/test/SaveNexusProcessedTest.h
+++ b/Code/Mantid/Framework/DataHandling/test/SaveNexusProcessedTest.h
@@ -35,6 +35,10 @@ using namespace Mantid::NeXus;
 class SaveNexusProcessedTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static SaveNexusProcessedTest *createSuite() { return new SaveNexusProcessedTest(); }
+  static void destroySuite( SaveNexusProcessedTest *suite ) { delete suite; }
 
   SaveNexusProcessedTest()
   {
diff --git a/Code/Mantid/Framework/DataObjects/test/EventListTest.h b/Code/Mantid/Framework/DataObjects/test/EventListTest.h
index 363f697e8fe..01ca2f5e7ef 100644
--- a/Code/Mantid/Framework/DataObjects/test/EventListTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/EventListTest.h
@@ -29,6 +29,11 @@ private:
 
 
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static EventListTest *createSuite() { return new EventListTest(); }
+  static void destroySuite( EventListTest *suite ) { delete suite; }
+
   EventListTest()
   {
     BIN_DELTA = 10000;
diff --git a/Code/Mantid/Framework/DataObjects/test/EventWorkspaceTest.h b/Code/Mantid/Framework/DataObjects/test/EventWorkspaceTest.h
index f3b2d5bc8b3..5bd9af42d02 100644
--- a/Code/Mantid/Framework/DataObjects/test/EventWorkspaceTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/EventWorkspaceTest.h
@@ -46,6 +46,10 @@ private:
   int NUMPIXELS, NUMBINS, NUMEVENTS, BIN_DELTA;
 
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static EventWorkspaceTest *createSuite() { return new EventWorkspaceTest(); }
+  static void destroySuite( EventWorkspaceTest *suite ) { delete suite; }
 
   EventWorkspaceTest()
   {
diff --git a/Code/Mantid/Framework/DataObjects/test/ManagedDataBlock2DTest.h b/Code/Mantid/Framework/DataObjects/test/ManagedDataBlock2DTest.h
index 14e51544005..bafc8bd0fcd 100644
--- a/Code/Mantid/Framework/DataObjects/test/ManagedDataBlock2DTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/ManagedDataBlock2DTest.h
@@ -13,6 +13,11 @@ using Mantid::MantidVecPtr;
 class ManagedDataBlock2DTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static ManagedDataBlock2DTest *createSuite() { return new ManagedDataBlock2DTest(); }
+  static void destroySuite( ManagedDataBlock2DTest *suite ) { delete suite; }
+
   ManagedDataBlock2DTest()
     : data(0,2,4,3, NULL, MantidVecPtr() )
   {
diff --git a/Code/Mantid/Framework/DataObjects/test/RefAxisTest.h b/Code/Mantid/Framework/DataObjects/test/RefAxisTest.h
index f5c317a77b9..ad23ec0d073 100644
--- a/Code/Mantid/Framework/DataObjects/test/RefAxisTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/RefAxisTest.h
@@ -17,6 +17,11 @@ using namespace Mantid::Kernel;
 class RefAxisTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static RefAxisTest *createSuite() { return new RefAxisTest(); }
+  static void destroySuite( RefAxisTest *suite ) { delete suite; }
+
   RefAxisTest()
   {
     // Set up two small workspaces for these tests
diff --git a/Code/Mantid/Framework/DataObjects/test/TableWorkspacePropertyTest.h b/Code/Mantid/Framework/DataObjects/test/TableWorkspacePropertyTest.h
index c9a9f7eab7c..b86243c61f3 100644
--- a/Code/Mantid/Framework/DataObjects/test/TableWorkspacePropertyTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/TableWorkspacePropertyTest.h
@@ -58,6 +58,11 @@ void TableWorkspaceAlgorithm::exec()
 class TableWorkspacePropertyTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static TableWorkspacePropertyTest *createSuite() { return new TableWorkspacePropertyTest(); }
+  static void destroySuite( TableWorkspacePropertyTest *suite ) { delete suite; }
+
     TableWorkspacePropertyTest()
     {
         t.reset(new TableWorkspace(10));
diff --git a/Code/Mantid/Framework/DataObjects/test/TofEventTest.h b/Code/Mantid/Framework/DataObjects/test/TofEventTest.h
index d7f9f2cf469..a2f7bbd7e37 100644
--- a/Code/Mantid/Framework/DataObjects/test/TofEventTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/TofEventTest.h
@@ -22,6 +22,11 @@ private:
   TofEvent e;
 
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static TofEventTest *createSuite() { return new TofEventTest(); }
+  static void destroySuite( TofEventTest *suite ) { delete suite; }
+
   TofEventTest()
   {
     e = TofEvent(123, 456);
diff --git a/Code/Mantid/Framework/DataObjects/test/WeightedEventNoTimeTest.h b/Code/Mantid/Framework/DataObjects/test/WeightedEventNoTimeTest.h
index 4532bc40df9..860e4a900f5 100644
--- a/Code/Mantid/Framework/DataObjects/test/WeightedEventNoTimeTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/WeightedEventNoTimeTest.h
@@ -19,13 +19,7 @@ using std::vector;
 //==========================================================================================
 class WeightedEventNoTimeTest : public CxxTest::TestSuite
 {
-private:
-
 public:
-  WeightedEventNoTimeTest()
-  {
-  }
-
   void testConstructors()
   {
     TofEvent e(123, 456);
diff --git a/Code/Mantid/Framework/DataObjects/test/WeightedEventTest.h b/Code/Mantid/Framework/DataObjects/test/WeightedEventTest.h
index d2e646b2117..fec3f024a2a 100644
--- a/Code/Mantid/Framework/DataObjects/test/WeightedEventTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/WeightedEventTest.h
@@ -19,13 +19,7 @@ using std::vector;
 //==========================================================================================
 class WeightedEventTest : public CxxTest::TestSuite
 {
-private:
-
 public:
-  WeightedEventTest()
-  {
-  }
-
   void testConstructors()
   {
     TofEvent e(123, 456);
diff --git a/Code/Mantid/Framework/DataObjects/test/Workspace2DTest.h b/Code/Mantid/Framework/DataObjects/test/Workspace2DTest.h
index 5e6d94f27f2..018eca484c0 100644
--- a/Code/Mantid/Framework/DataObjects/test/Workspace2DTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/Workspace2DTest.h
@@ -24,6 +24,11 @@ public:
   int nbins, nhist;
   Workspace2D_sptr ws;
 
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static Workspace2DTest *createSuite() { return new Workspace2DTest(); }
+  static void destroySuite( Workspace2DTest *suite ) { delete suite; }
+
   Workspace2DTest()
   {
     nbins = 5;
diff --git a/Code/Mantid/Framework/DataObjects/test/WorkspaceValidatorsTest.h b/Code/Mantid/Framework/DataObjects/test/WorkspaceValidatorsTest.h
index ab1e0ce198c..42db9aba651 100644
--- a/Code/Mantid/Framework/DataObjects/test/WorkspaceValidatorsTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/WorkspaceValidatorsTest.h
@@ -25,6 +25,11 @@ private:
   MatrixWorkspace_sptr ws2;
 
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static WorkspaceValidatorsTest *createSuite() { return new WorkspaceValidatorsTest(); }
+  static void destroySuite( WorkspaceValidatorsTest *suite ) { delete suite; }
+
   WorkspaceValidatorsTest()
   {
     wavUnitVal = new WorkspaceUnitValidator<>("Wavelength");
diff --git a/Code/Mantid/Framework/Geometry/test/MDDimensionTest.h b/Code/Mantid/Framework/Geometry/test/MDDimensionTest.h
index d500ff9d718..f565ff5fd19 100644
--- a/Code/Mantid/Framework/Geometry/test/MDDimensionTest.h
+++ b/Code/Mantid/Framework/Geometry/test/MDDimensionTest.h
@@ -61,6 +61,10 @@ class MDDimensionTest :    public CxxTest::TestSuite
     tDimensionRes *pResDim;
     tDimension    *pOrtDim;
 public:
+    // This pair of boilerplate methods prevent the suite being created statically
+    // This means the constructor isn't called when running other tests
+    static MDDimensionTest *createSuite() { return new MDDimensionTest(); }
+    static void destroySuite( MDDimensionTest *suite ) { delete suite; }
 
     void testPublicConstructor()
 	{
diff --git a/Code/Mantid/Framework/Geometry/test/MDGeometryBasisTest.h b/Code/Mantid/Framework/Geometry/test/MDGeometryBasisTest.h
index 9996bb7d558..7c22289f445 100644
--- a/Code/Mantid/Framework/Geometry/test/MDGeometryBasisTest.h
+++ b/Code/Mantid/Framework/Geometry/test/MDGeometryBasisTest.h
@@ -169,10 +169,6 @@ public:
      TSM_ASSERT_EQUALS("Each DIM_id obrained has to belong to dimensions",true,mdBasis->checkIdCompartibility(dimID));
 
   }
-  ~MDGeometryBasisTest()
-  {
-  }
-
 
 };
 
diff --git a/Code/Mantid/Framework/Geometry/test/MDGeometryTest.h b/Code/Mantid/Framework/Geometry/test/MDGeometryTest.h
index ce93edfb985..135941571dc 100644
--- a/Code/Mantid/Framework/Geometry/test/MDGeometryTest.h
+++ b/Code/Mantid/Framework/Geometry/test/MDGeometryTest.h
@@ -69,7 +69,12 @@ class MDGeometryTest : public CxxTest::TestSuite
 
   std::auto_ptr<testMDGeometry> tDND_geometry;
   std::auto_ptr<MDGeometryDescription> pSlice;
+
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static MDGeometryTest *createSuite() { return new MDGeometryTest(); }
+  static void destroySuite( MDGeometryTest *suite ) { delete suite; }
 
   MDGeometryTest()
   {
diff --git a/Code/Mantid/Framework/Geometry/test/ParInstrumentTest.h b/Code/Mantid/Framework/Geometry/test/ParInstrumentTest.h
index fc0010e50c5..82733dfb6d0 100644
--- a/Code/Mantid/Framework/Geometry/test/ParInstrumentTest.h
+++ b/Code/Mantid/Framework/Geometry/test/ParInstrumentTest.h
@@ -14,6 +14,11 @@ using namespace Mantid::Geometry;
 class ParInstrumentTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static ParInstrumentTest *createSuite() { return new ParInstrumentTest(); }
+  static void destroySuite( ParInstrumentTest *suite ) { delete suite; }
+
   ParInstrumentTest()
   {
     instrument.reset(new Instrument);
diff --git a/Code/Mantid/Framework/Geometry/test/ParametrizedComponentTest.h b/Code/Mantid/Framework/Geometry/test/ParametrizedComponentTest.h
index 5658e2ca7f9..918c55c7620 100644
--- a/Code/Mantid/Framework/Geometry/test/ParametrizedComponentTest.h
+++ b/Code/Mantid/Framework/Geometry/test/ParametrizedComponentTest.h
@@ -23,6 +23,10 @@ using Mantid::Kernel::Quat;
 class ParametrizedComponentTest : public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static ParametrizedComponentTest *createSuite() { return new ParametrizedComponentTest(); }
+  static void destroySuite( ParametrizedComponentTest *suite ) { delete suite; }
 
   ParametrizedComponentTest() : m_parentComp(NULL), m_childOneComp(NULL), m_childTwoComp(NULL), m_paramMap(),
   m_strName("StringParam"), m_strValue("test-string"), m_dblName("DblParam"), m_dblValue(10.0),
diff --git a/Code/Mantid/Framework/Kernel/test/RegexStringsTest.h b/Code/Mantid/Framework/Kernel/test/RegexStringsTest.h
index 05106e0ea56..8fcd7350746 100644
--- a/Code/Mantid/Framework/Kernel/test/RegexStringsTest.h
+++ b/Code/Mantid/Framework/Kernel/test/RegexStringsTest.h
@@ -23,6 +23,9 @@ private:
   std::stringstream testStream;
 
 public:
+  static RegexStringsTest *createSuite() { return new RegexStringsTest(); }
+  static void destroySuite(RegexStringsTest *suite) { delete suite; }
+
   RegexStringsTest()
   {
     testStream << "2007-11-16T13:25:48 END\n"
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/CPRebinKeepPixTest.h b/Code/Mantid/Framework/MDAlgorithms/test/CPRebinKeepPixTest.h
index d559eb12c15..b257af6b4c0 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/CPRebinKeepPixTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/CPRebinKeepPixTest.h
@@ -92,8 +92,6 @@ class CPRebinKeepPixTest :    public CxxTest::TestSuite
 		AnalysisDataService::Instance().remove("CPRebinKeepPixTestOut");
 		
 	 }
-	~CPRebinKeepPixTest(){
-	}
 };
 
 
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/CobaltSWDTest.h b/Code/Mantid/Framework/MDAlgorithms/test/CobaltSWDTest.h
index 3c91b08c989..ea086669e83 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/CobaltSWDTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/CobaltSWDTest.h
@@ -305,8 +305,6 @@ private:
 
 public:
 
-    CobaltSWDTest() {};
-
     // create a test data set of 6 MDPoints contributing to 4 MDCells with 1, 2 and 3, 4 points each.
     void testInit()
     {
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/Load_MDWorkspaceTest.h b/Code/Mantid/Framework/MDAlgorithms/test/Load_MDWorkspaceTest.h
index 8b139061f8a..14d20f34f0d 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/Load_MDWorkspaceTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/Load_MDWorkspaceTest.h
@@ -70,8 +70,5 @@ class Load_MDWorkspaceTest :    public CxxTest::TestSuite
      }
     
 
-~Load_MDWorkspaceTest(){
-}
-
 };
 #endif
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/PlaneImplicitFunctionTest.h b/Code/Mantid/Framework/MDAlgorithms/test/PlaneImplicitFunctionTest.h
index 3517b5ac013..56dca3d3e8d 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/PlaneImplicitFunctionTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/PlaneImplicitFunctionTest.h
@@ -25,6 +25,10 @@ private:
   const double PI;
 
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static PlaneImplicitFunctionTest *createSuite() { return new PlaneImplicitFunctionTest(); }
+  static void destroySuite( PlaneImplicitFunctionTest *suite ) { delete suite; }
 
   PlaneImplicitFunctionTest() :
     normal(1, 1, 1), origin(2, 3, 4), width(2), PI(3.14159265)
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/QuadEnBackgroundTest.h b/Code/Mantid/Framework/MDAlgorithms/test/QuadEnBackgroundTest.h
index 749cf7af40c..398e30099e0 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/QuadEnBackgroundTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/QuadEnBackgroundTest.h
@@ -303,8 +303,6 @@ private:
 
 public:
 
-    QuadEnBackgroundTest() {};
-
     // create a test data set of 6 MDPoints contributing to 4 MDCells with 1, 2 and 3, 4 points each.
     void testInit()
     {
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/RunParamTest.h b/Code/Mantid/Framework/MDAlgorithms/test/RunParamTest.h
index 7ec7912aebc..e5ae691ea23 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/RunParamTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/RunParamTest.h
@@ -25,8 +25,6 @@ private:
 
 public:
   
-  RunParamTest() {};
-
   // set up a simple RunParam object and test
   void testInit()
   {
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/SimulateMDDataTest.h b/Code/Mantid/Framework/MDAlgorithms/test/SimulateMDDataTest.h
index 7c430956e46..c0f0f4e87f4 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/SimulateMDDataTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/SimulateMDDataTest.h
@@ -222,8 +222,6 @@ private:
 
 public:
 
-    SimulateMDDataTest() {};
-
     // create a test data set of 3 pixels contributing to 2 points to 1 cut
     void testInit()
     {
diff --git a/Code/Mantid/Framework/MDAlgorithms/test/TobyFitSimulateTest.h b/Code/Mantid/Framework/MDAlgorithms/test/TobyFitSimulateTest.h
index 3fe36ce625e..f5247117780 100644
--- a/Code/Mantid/Framework/MDAlgorithms/test/TobyFitSimulateTest.h
+++ b/Code/Mantid/Framework/MDAlgorithms/test/TobyFitSimulateTest.h
@@ -221,8 +221,6 @@ private:
 
 public:
 
-  TobyFitSimulateTest() {};
-
   // create a test data set of 3 pixels contributing to 2 points to 1 cut
   void testInit()
   {
diff --git a/Code/Mantid/Framework/MDDataObjects/test/MDDPoints_MemManagerTest.h b/Code/Mantid/Framework/MDDataObjects/test/MDDPoints_MemManagerTest.h
index c47db171eb2..fbed4aea616 100644
--- a/Code/Mantid/Framework/MDDataObjects/test/MDDPoints_MemManagerTest.h
+++ b/Code/Mantid/Framework/MDDataObjects/test/MDDPoints_MemManagerTest.h
@@ -470,6 +470,11 @@ public:
 
   }
 
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static MDDPoints_MemManagerTest *createSuite() { return new MDDPoints_MemManagerTest(); }
+  static void destroySuite( MDDPoints_MemManagerTest *suite ) { delete suite; }
+
   MDDPoints_MemManagerTest():pMemMan(NULL){};
   ~MDDPoints_MemManagerTest(){
     if(pMemMan)delete pMemMan;
@@ -478,4 +483,4 @@ public:
 };
 
 
-#endif
\ No newline at end of file
+#endif
diff --git a/Code/Mantid/Framework/MDDataObjects/test/MDDataPointTest.h b/Code/Mantid/Framework/MDDataObjects/test/MDDataPointTest.h
index fe544ea5589..3a0e481674d 100644
--- a/Code/Mantid/Framework/MDDataObjects/test/MDDataPointTest.h
+++ b/Code/Mantid/Framework/MDDataObjects/test/MDDataPointTest.h
@@ -464,6 +464,10 @@ public:
     }
   }
 
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static MDDataPointTest *createSuite() { return new MDDataPointTest(); }
+  static void destroySuite( MDDataPointTest *suite ) { delete suite; }
 
   MDDataPointTest()
   {
diff --git a/Code/Mantid/Framework/MDDataObjects/test/MD_FileFactoryTest.h b/Code/Mantid/Framework/MDDataObjects/test/MD_FileFactoryTest.h
index 5334aea7846..11a561205e8 100644
--- a/Code/Mantid/Framework/MDDataObjects/test/MD_FileFactoryTest.h
+++ b/Code/Mantid/Framework/MDDataObjects/test/MD_FileFactoryTest.h
@@ -66,8 +66,6 @@ public:
 
     TSM_ASSERT("FileFormat factory have not returned a pointer to a Horace file reader ",dynamic_cast<HoraceReader::MD_FileHoraceReader*>(horaceFormat.get())!=0);
   }
-  ~MD_FileFactoryTest(){
-  }
 
 };
 
diff --git a/Code/Mantid/Framework/MDEvents/test/MDEventWorkspaceTest.h b/Code/Mantid/Framework/MDEvents/test/MDEventWorkspaceTest.h
index a7338de243f..30c4031b6f7 100644
--- a/Code/Mantid/Framework/MDEvents/test/MDEventWorkspaceTest.h
+++ b/Code/Mantid/Framework/MDEvents/test/MDEventWorkspaceTest.h
@@ -33,6 +33,11 @@ using namespace Mantid::Geometry;
 class MDEventWorkspaceTest :    public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static MDEventWorkspaceTest *createSuite() { return new MDEventWorkspaceTest(); }
+  static void destroySuite( MDEventWorkspaceTest *suite ) { delete suite; }
+
   bool DODEBUG;
   MDEventWorkspaceTest()
   {
diff --git a/Code/Mantid/Framework/MDEvents/test/MDGridBoxTest.h b/Code/Mantid/Framework/MDEvents/test/MDGridBoxTest.h
index d5e76434b5c..80944311934 100644
--- a/Code/Mantid/Framework/MDEvents/test/MDGridBoxTest.h
+++ b/Code/Mantid/Framework/MDEvents/test/MDGridBoxTest.h
@@ -41,14 +41,17 @@ using namespace Mantid::Geometry;
 class MDGridBoxTest :    public CxxTest::TestSuite
 {
 public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static MDGridBoxTest *createSuite() { return new MDGridBoxTest(); }
+  static void destroySuite( MDGridBoxTest *suite ) { delete suite; }
+
   bool DODEBUG;
   MDGridBoxTest()
   {
     DODEBUG = false;
   }
 
-public:
-
   //-------------------------------------------------------------------------------------
   void test_MDBoxConstructor()
   {
diff --git a/Code/Mantid/Framework/Nexus/test/NexusAPITest.h b/Code/Mantid/Framework/Nexus/test/NexusAPITest.h
index 830397032a1..177c3a6574f 100644
--- a/Code/Mantid/Framework/Nexus/test/NexusAPITest.h
+++ b/Code/Mantid/Framework/Nexus/test/NexusAPITest.h
@@ -44,6 +44,11 @@ public:
   vector<float> r4_array;
   vector<double> r8_array;
 
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static NexusAPITest *createSuite() { return new NexusAPITest(); }
+  static void destroySuite( NexusAPITest *suite ) { delete suite; }
+
   NexusAPITest()
   {
 
-- 
GitLab