Index: trunk/test/unit/org/openstreetmap/josm/JOSMFixture.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/JOSMFixture.java	(revision 13173)
+++ trunk/test/unit/org/openstreetmap/josm/JOSMFixture.java	(revision 13174)
@@ -138,10 +138,5 @@
 
         if (createGui) {
-            GuiHelper.runInEDTAndWaitWithException(new Runnable() {
-                @Override
-                public void run() {
-                    setupGUI();
-                }
-            });
+            GuiHelper.runInEDTAndWaitWithException(() -> setupGUI());
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java	(revision 13173)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java	(revision 13174)
@@ -9,7 +9,7 @@
 import java.io.File;
 
-import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.actions.ExpertToggleAction;
@@ -22,4 +22,7 @@
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.MainApplication;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
@@ -31,7 +34,19 @@
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform().projection().main();
+
+    private DataSet ds;
+    private OsmDataLayer layer;
+
+    /**
+     * Setup tests
+     */
+    @Before
+    public void setUp() {
+        ds = new DataSet();
+        layer = new OsmDataLayer(ds, "", null);
+        MainApplication.getLayerManager().addLayer(layer);
     }
 
@@ -41,25 +56,18 @@
     @Test
     public void testRecentRelation() {
-        DataSet ds = new DataSet();
-        OsmDataLayer layer = new OsmDataLayer(ds, "", null);
-        try {
-            MainApplication.getLayerManager().addLayer(layer);
-            int n = OsmDataLayer.PROPERTY_RECENT_RELATIONS_NUMBER.get();
-            assertTrue(n > 0);
-            for (int i = 0; i < 2*n; i++) {
-                Relation r = new Relation(i, 1);
-                ds.addPrimitive(r);
-                layer.setRecentRelation(r);
+        int n = OsmDataLayer.PROPERTY_RECENT_RELATIONS_NUMBER.get();
+        assertTrue(n > 0);
+        for (int i = 0; i < 2*n; i++) {
+            Relation r = new Relation(i, 1);
+            ds.addPrimitive(r);
+            layer.setRecentRelation(r);
+        }
+        assertEquals(n, layer.getRecentRelations().size());
+        for (OsmPrimitive r : ds.allPrimitives()) {
+            if (r instanceof Relation) {
+                layer.removeRecentRelation((Relation) r);
             }
-            assertEquals(n, layer.getRecentRelations().size());
-            for (OsmPrimitive r : ds.allPrimitives()) {
-                if (r instanceof Relation) {
-                    layer.removeRecentRelation((Relation) r);
-                }
-            }
-            assertTrue(layer.getRecentRelations().isEmpty());
-        } finally {
-            MainApplication.getLayerManager().removeLayer(layer);
         }
+        assertTrue(layer.getRecentRelations().isEmpty());
     }
 
@@ -69,6 +77,4 @@
     @Test
     public void testGetInfoComponent() {
-        DataSet ds = new DataSet();
-        OsmDataLayer layer = new OsmDataLayer(ds, "", null);
         assertNotNull(layer.getInfoComponent());
 
@@ -108,6 +114,4 @@
     @Test
     public void testLayerStateChangeListenerNull() {
-        DataSet ds = new DataSet();
-        OsmDataLayer layer = new OsmDataLayer(ds, "", null);
         layer.addLayerStateChangeListener(null);
     }
@@ -118,6 +122,4 @@
     @Test
     public void testGetIcon() {
-        DataSet ds = new DataSet();
-        OsmDataLayer layer = new OsmDataLayer(ds, "", null);
         assertNotNull(layer.getIcon());
         layer.setUploadDiscouraged(true);
@@ -130,14 +132,7 @@
     @Test
     public void testPaint() {
-        DataSet ds = new DataSet();
-        fillDataSet(ds);
-        OsmDataLayer layer = new OsmDataLayer(ds, "", null);
-        try {
-            MainApplication.getLayerManager().addLayer(layer);
-            assertTrue(layer.getMenuEntries().length > 0);
-            layer.paint(TestUtils.newGraphics(), MainApplication.getMap().mapView, new Bounds(LatLon.ZERO));
-        } finally {
-            MainApplication.getLayerManager().removeLayer(layer);
-        }
+        fillDataSet(ds);
+        assertNotNull(MainApplication.getMap());
+        layer.paint(TestUtils.newGraphics(), MainApplication.getMap().mapView, new Bounds(LatLon.ZERO));
     }
 
@@ -147,5 +142,4 @@
     @Test
     public void testGetToolTipText() {
-        DataSet ds = new DataSet();
         assertEquals("<html>0 nodes<br>0 ways<br>0 relations</html>", new OsmDataLayer(ds, "", null).getToolTipText());
         fillDataSet(ds);
@@ -159,14 +153,13 @@
     @Test
     public void testMergeFrom() {
-        DataSet ds = new DataSet();
-        fillDataSet(ds);
-        OsmDataLayer layer1 = new OsmDataLayer(ds, "", null);
+        fillDataSet(ds);
         OsmDataLayer layer2 = new OsmDataLayer(new DataSet(), "", null);
+        MainApplication.getLayerManager().addLayer(layer2);
         assertTrue(layer2.data.allPrimitives().isEmpty());
-        assertTrue(layer2.isMergable(layer1));
-        layer2.mergeFrom(layer1);
+        assertTrue(layer2.isMergable(layer));
+        layer2.mergeFrom(layer);
         assertEquals(6, layer2.data.allPrimitives().size());
-        layer1.setUploadDiscouraged(true);
-        layer2.mergeFrom(layer1);
+        layer.setUploadDiscouraged(true);
+        layer2.mergeFrom(layer);
         assertTrue(layer2.isUploadDiscouraged());
     }
@@ -177,7 +170,5 @@
     @Test
     public void testCleanupAfterUpload() {
-        DataSet ds = new DataSet();
-        fillDataSet(ds);
-        OsmDataLayer layer = new OsmDataLayer(ds, "", null);
+        fillDataSet(ds);
         assertEquals(6, layer.data.allPrimitives().size());
         layer.cleanupAfterUpload(ds.allPrimitives());
@@ -190,5 +181,4 @@
     @Test
     public void testGetMenuEntries() {
-        OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
         ExpertToggleAction.getInstance().setExpert(true);
         assertEquals(16, layer.getMenuEntries().length);
@@ -203,7 +193,5 @@
     @Test
     public void testToGpxData() {
-        DataSet ds = new DataSet();
-        fillDataSet(ds);
-        OsmDataLayer layer = new OsmDataLayer(ds, "", null);
+        fillDataSet(ds);
         assertNotNull(layer.toGpxData());
     }
@@ -214,7 +202,5 @@
     @Test
     public void testContainsPoint() {
-        DataSet ds = new DataSet();
-        fillDataSet(ds);
-        OsmDataLayer layer = new OsmDataLayer(ds, "", null);
+        fillDataSet(ds);
         assertTrue(layer.containsPoint(LatLon.ZERO));
     }
@@ -225,6 +211,4 @@
     @Test
     public void testIsModified() {
-        DataSet ds = new DataSet();
-        OsmDataLayer layer = new OsmDataLayer(ds, "", null);
         assertFalse(layer.isModified());
         fillDataSet(ds);
@@ -237,5 +221,5 @@
     @Test
     public void testProjectionChanged() {
-        new OsmDataLayer(new DataSet(), "", null).projectionChanged(null, null);
+        layer.projectionChanged(null, null);
     }
 
@@ -245,6 +229,4 @@
     @Test
     public void testCheckSaveConditions() {
-        DataSet ds = new DataSet();
-        OsmDataLayer layer = new OsmDataLayer(ds, "", null);
         assertFalse(layer.checkSaveConditions());
         fillDataSet(ds);
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/ValidatorLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/ValidatorLayerTest.java	(revision 13173)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/ValidatorLayerTest.java	(revision 13174)
@@ -7,8 +7,11 @@
 import static org.junit.Assert.assertTrue;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.MainApplication;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
@@ -20,8 +23,7 @@
      * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init(true);
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform().projection().main();
 
     /**
@@ -30,19 +32,12 @@
     @Test
     public void testValidatorLayer() {
-        ValidatorLayer layer = null;
-        try {
-            layer = new ValidatorLayer();
-            MainApplication.getLayerManager().addLayer(layer);
-            assertFalse(layer.isMergable(null));
-            assertNotNull(layer.getIcon());
-            assertEquals("<html>No validation errors</html>", layer.getToolTipText());
-            assertEquals("<html>No validation errors</html>", layer.getInfoComponent());
-            assertTrue(layer.getMenuEntries().length > 0);
-        } finally {
-            // Ensure we clean the place before leaving, even if test fails.
-            if (layer != null) {
-                MainApplication.getLayerManager().removeLayer(layer);
-            }
-        }
+        MainApplication.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "", null));
+        ValidatorLayer layer = new ValidatorLayer();
+        MainApplication.getLayerManager().addLayer(layer);
+        assertFalse(layer.isMergable(null));
+        assertNotNull(layer.getIcon());
+        assertEquals("<html>No validation errors</html>", layer.getToolTipText());
+        assertEquals("<html>No validation errors</html>", layer.getInfoComponent());
+        assertTrue(layer.getMenuEntries().length > 0);
     }
 }
