diff --git a/src/test/java/org/apache/commons/io/comparator/ComparatorAbstractTestCase.java b/src/test/java/org/apache/commons/io/comparator/ComparatorAbstractTestCase.java
index 3d919bd..69c913e 100644
--- a/src/test/java/org/apache/commons/io/comparator/ComparatorAbstractTestCase.java
+++ b/src/test/java/org/apache/commons/io/comparator/ComparatorAbstractTestCase.java
@@ -16,26 +16,34 @@
  */
 package org.apache.commons.io.comparator;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.testtools.FileBasedTestCase;
-import org.junit.After;
-import org.junit.Test;
-
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+
+import org.apache.commons.io.FileUtils;
+import org.junit.After;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
 /**
  * Base Test case for Comparator implementations.
  */
-public abstract class ComparatorAbstractTestCase extends FileBasedTestCase {
+public abstract class ComparatorAbstractTestCase {
+
+    @Rule
+    public TemporaryFolder temporaryFolder = new TemporaryFolder();
+
+    protected File getTestDirectory() {
+        return temporaryFolder.getRoot();
+    }
 
     /** comparator instance */
     protected AbstractFileComparator comparator;
diff --git a/src/test/java/org/apache/commons/io/comparator/CompositeFileComparatorTest.java b/src/test/java/org/apache/commons/io/comparator/CompositeFileComparatorTest.java
index 26610c6..9d98791 100644
--- a/src/test/java/org/apache/commons/io/comparator/CompositeFileComparatorTest.java
+++ b/src/test/java/org/apache/commons/io/comparator/CompositeFileComparatorTest.java
@@ -16,9 +16,8 @@
  */
 package org.apache.commons.io.comparator;
 
-import org.apache.commons.io.testtools.TestUtils;
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.io.BufferedOutputStream;
 import java.io.File;
@@ -28,8 +27,9 @@
 import java.util.Comparator;
 import java.util.List;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import org.apache.commons.io.testtools.TestUtils;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Test case for {@link CompositeFileComparator}.
diff --git a/src/test/java/org/apache/commons/io/comparator/DefaultFileComparatorTest.java b/src/test/java/org/apache/commons/io/comparator/DefaultFileComparatorTest.java
index 89ce2b0..392f465 100644
--- a/src/test/java/org/apache/commons/io/comparator/DefaultFileComparatorTest.java
+++ b/src/test/java/org/apache/commons/io/comparator/DefaultFileComparatorTest.java
@@ -16,10 +16,10 @@
  */
 package org.apache.commons.io.comparator;
 
-import org.junit.Before;
-
 import java.io.File;
 
+import org.junit.Before;
+
 /**
  * Test case for {@link DefaultFileComparator}.
  */
diff --git a/src/test/java/org/apache/commons/io/comparator/DirectoryFileComparatorTest.java b/src/test/java/org/apache/commons/io/comparator/DirectoryFileComparatorTest.java
index 2128d07..e4649d3 100644
--- a/src/test/java/org/apache/commons/io/comparator/DirectoryFileComparatorTest.java
+++ b/src/test/java/org/apache/commons/io/comparator/DirectoryFileComparatorTest.java
@@ -16,11 +16,11 @@
  */
 package org.apache.commons.io.comparator;
 
+import java.io.File;
+
 import org.junit.Before;
 import org.junit.Test;
 
-import java.io.File;
-
 /**
  * Test case for {@link DirectoryFileComparator}.
  */
diff --git a/src/test/java/org/apache/commons/io/comparator/ExtensionFileComparatorTest.java b/src/test/java/org/apache/commons/io/comparator/ExtensionFileComparatorTest.java
index cd47ab9..dc5d73c 100644
--- a/src/test/java/org/apache/commons/io/comparator/ExtensionFileComparatorTest.java
+++ b/src/test/java/org/apache/commons/io/comparator/ExtensionFileComparatorTest.java
@@ -16,13 +16,13 @@
  */
 package org.apache.commons.io.comparator;
 
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.util.Comparator;
 
-import static org.junit.Assert.assertTrue;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Test case for {@link ExtensionFileComparator}.
diff --git a/src/test/java/org/apache/commons/io/comparator/LastModifiedFileComparatorTest.java b/src/test/java/org/apache/commons/io/comparator/LastModifiedFileComparatorTest.java
index 0a5ded2..0fa5750 100644
--- a/src/test/java/org/apache/commons/io/comparator/LastModifiedFileComparatorTest.java
+++ b/src/test/java/org/apache/commons/io/comparator/LastModifiedFileComparatorTest.java
@@ -16,14 +16,14 @@
  */
 package org.apache.commons.io.comparator;
 
-import org.apache.commons.io.testtools.TestUtils;
-import org.junit.Before;
-
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 
+import org.apache.commons.io.testtools.TestUtils;
+import org.junit.Before;
+
 /**
  * Test case for {@link LastModifiedFileComparator}.
  */
diff --git a/src/test/java/org/apache/commons/io/comparator/NameFileComparatorTest.java b/src/test/java/org/apache/commons/io/comparator/NameFileComparatorTest.java
index cabc0e2..d60bbc3 100644
--- a/src/test/java/org/apache/commons/io/comparator/NameFileComparatorTest.java
+++ b/src/test/java/org/apache/commons/io/comparator/NameFileComparatorTest.java
@@ -16,13 +16,13 @@
  */
 package org.apache.commons.io.comparator;
 
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.util.Comparator;
 
-import static org.junit.Assert.assertTrue;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Test case for {@link NameFileComparator}.
diff --git a/src/test/java/org/apache/commons/io/comparator/PathFileComparatorTest.java b/src/test/java/org/apache/commons/io/comparator/PathFileComparatorTest.java
index 0d9b0a1..5d36833 100644
--- a/src/test/java/org/apache/commons/io/comparator/PathFileComparatorTest.java
+++ b/src/test/java/org/apache/commons/io/comparator/PathFileComparatorTest.java
@@ -16,13 +16,13 @@
  */
 package org.apache.commons.io.comparator;
 
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.util.Comparator;
 
-import static org.junit.Assert.assertTrue;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Test case for {@link PathFileComparator}.
diff --git a/src/test/java/org/apache/commons/io/comparator/SizeFileComparatorTest.java b/src/test/java/org/apache/commons/io/comparator/SizeFileComparatorTest.java
index 88b60ec..f698b02 100644
--- a/src/test/java/org/apache/commons/io/comparator/SizeFileComparatorTest.java
+++ b/src/test/java/org/apache/commons/io/comparator/SizeFileComparatorTest.java
@@ -16,18 +16,18 @@
  */
 package org.apache.commons.io.comparator;
 
-import org.apache.commons.io.testtools.TestUtils;
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import org.apache.commons.io.testtools.TestUtils;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Test case for {@link SizeFileComparator}.
