diff --git a/configure.ac b/configure.ac
index 36ba21d8a6d3c302ea2359747b0854f75c19d054..10c51e472e6cb67bd2699cc021ef37d046d9839a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -21,6 +21,7 @@ LIBS="$DUNE_LIBS"
 AC_CONFIG_FILES([
   Makefile
   src/Makefile
+  src/tests/Makefile
   doc/Makefile
   doc/doxygen/Makefile
   doc/doxygen/Doxyfile
diff --git a/src/Makefile.am b/src/Makefile.am
index 0777d6eee9a04467214e8e35c9b31a42303b0205..826fb0acfc868f185d98b9e96a62fe9d31fb7e0d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,39 +1,4 @@
-check_PROGRAMS = \
-	test-circle-1 \
-	test-circle-10 \
-	test-gradient-horrible \
-	test-gradient-horrible-logarithmic \
-	test-gradient-identity \
-	test-gradient-kinks \
-	test-gradient-parabola \
-	test-gradient-sample \
-	test-gradient-sample-3d \
-	test-gradient-sample-nonsmooth \
-	test-gradient-sample-steep \
-	test-gradient-sample-steep2 \
-	test-gradient-sample-verysteep \
-	test-gradient-sample2 \
-	test-gradient-trivial \
-	test-minimise2
-
-test_circle_1_SOURCES                      = test-circle.cc
-test_circle_1_CPPFLAGS                     = $(AM_CPPFLAGS) -DDUNE_TECTONIC_TEST_CIRCLE_SCALE=1
-test_circle_10_SOURCES                     = test-circle.cc
-test_circle_10_CPPFLAGS                    = $(AM_CPPFLAGS) -DDUNE_TECTONIC_TEST_CIRCLE_SCALE=10
-test_gradient_horrible_SOURCES             = test-gradient-horrible.cc
-test_gradient_horrible_logarithmic_SOURCES = test-gradient-horrible-logarithmic.cc
-test_gradient_identity_SOURCES             = test-gradient-identity.cc
-test_gradient_kinks_SOURCES                = test-gradient-kinks.cc
-test_gradient_parabola_SOURCES             = test-gradient-parabola.cc
-test_gradient_sample_SOURCES               = test-gradient-sample.cc
-test_gradient_sample_3d_SOURCES            = test-gradient-sample-3d.cc
-test_gradient_sample_nonsmooth_SOURCES     = test-gradient-sample-nonsmooth.cc
-test_gradient_sample_steep_SOURCES         = test-gradient-sample-steep.cc
-test_gradient_sample_steep2_SOURCES        = test-gradient-sample-steep2.cc
-test_gradient_sample_verysteep_SOURCES     = test-gradient-sample-verysteep.cc
-test_gradient_sample2_SOURCES              = test-gradient-sample2.cc
-test_gradient_trivial_SOURCES              = test-gradient-trivial.cc
-test_minimise2_SOURCES                     = test-minimise2.cc
+SUBDIRS = tests
 
 bin_PROGRAMS = \
 	one-body-sample-2D \
@@ -95,8 +60,6 @@ one_body_sample_3D_SOURCES = \
 one_body_sample_3D_CPPFLAGS = \
 	$(AM_CPPFLAGS) -Dsrcdir=\"$(srcdir)\" -DDIM=3
 
-TESTS = $(check_PROGRAMS)
-
 # Some are for clang, others are for gcc
 AM_CXXFLAGS = \
 	-Wall \
diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..90342183a16bb783eac10d3f6fc34627dd79be0d
--- /dev/null
+++ b/src/tests/Makefile.am
@@ -0,0 +1,44 @@
+check_PROGRAMS = \
+	test-circle-1 \
+	test-circle-10 \
+	test-gradient-horrible \
+	test-gradient-horrible-logarithmic \
+	test-gradient-identity \
+	test-gradient-kinks \
+	test-gradient-parabola \
+	test-gradient-sample \
+	test-gradient-sample-3d \
+	test-gradient-sample-nonsmooth \
+	test-gradient-sample-steep \
+	test-gradient-sample-steep2 \
+	test-gradient-sample-verysteep \
+	test-gradient-sample2 \
+	test-gradient-trivial \
+	test-minimise2
+
+test_circle_1_SOURCES                      = test-circle.cc
+test_circle_1_CPPFLAGS                     = $(AM_CPPFLAGS) -DDUNE_TECTONIC_TEST_CIRCLE_SCALE=1
+test_circle_10_SOURCES                     = test-circle.cc
+test_circle_10_CPPFLAGS                    = $(AM_CPPFLAGS) -DDUNE_TECTONIC_TEST_CIRCLE_SCALE=10
+test_gradient_horrible_SOURCES             = test-gradient-horrible.cc
+test_gradient_horrible_logarithmic_SOURCES = test-gradient-horrible-logarithmic.cc
+test_gradient_identity_SOURCES             = test-gradient-identity.cc
+test_gradient_kinks_SOURCES                = test-gradient-kinks.cc
+test_gradient_parabola_SOURCES             = test-gradient-parabola.cc
+test_gradient_sample_SOURCES               = test-gradient-sample.cc
+test_gradient_sample_3d_SOURCES            = test-gradient-sample-3d.cc
+test_gradient_sample_nonsmooth_SOURCES     = test-gradient-sample-nonsmooth.cc
+test_gradient_sample_steep_SOURCES         = test-gradient-sample-steep.cc
+test_gradient_sample_steep2_SOURCES        = test-gradient-sample-steep2.cc
+test_gradient_sample_verysteep_SOURCES     = test-gradient-sample-verysteep.cc
+test_gradient_sample2_SOURCES              = test-gradient-sample2.cc
+test_gradient_trivial_SOURCES              = test-gradient-trivial.cc
+test_minimise2_SOURCES                     = test-minimise2.cc
+
+TESTS = $(check_PROGRAMS)
+
+AM_CPPFLAGS = \
+	$(DUNE_CPPFLAGS) \
+	$(PYTHON_CPPFLAGS) \
+	$(ALUGRID_CPPFLAGS) \
+	-I$(top_srcdir)
diff --git a/src/test-circle.cc b/src/tests/test-circle.cc
similarity index 100%
rename from src/test-circle.cc
rename to src/tests/test-circle.cc
diff --git a/src/test-gradient-horrible-logarithmic.cc b/src/tests/test-gradient-horrible-logarithmic.cc
similarity index 100%
rename from src/test-gradient-horrible-logarithmic.cc
rename to src/tests/test-gradient-horrible-logarithmic.cc
diff --git a/src/test-gradient-horrible.cc b/src/tests/test-gradient-horrible.cc
similarity index 100%
rename from src/test-gradient-horrible.cc
rename to src/tests/test-gradient-horrible.cc
diff --git a/src/test-gradient-identity.cc b/src/tests/test-gradient-identity.cc
similarity index 100%
rename from src/test-gradient-identity.cc
rename to src/tests/test-gradient-identity.cc
diff --git a/src/test-gradient-kinks.cc b/src/tests/test-gradient-kinks.cc
similarity index 100%
rename from src/test-gradient-kinks.cc
rename to src/tests/test-gradient-kinks.cc
diff --git a/src/test-gradient-method-helper.hh b/src/tests/test-gradient-method-helper.hh
similarity index 100%
rename from src/test-gradient-method-helper.hh
rename to src/tests/test-gradient-method-helper.hh
diff --git a/src/test-gradient-method-nicefunction.hh b/src/tests/test-gradient-method-nicefunction.hh
similarity index 100%
rename from src/test-gradient-method-nicefunction.hh
rename to src/tests/test-gradient-method-nicefunction.hh
diff --git a/src/test-gradient-parabola.cc b/src/tests/test-gradient-parabola.cc
similarity index 100%
rename from src/test-gradient-parabola.cc
rename to src/tests/test-gradient-parabola.cc
diff --git a/src/test-gradient-sample-3d.cc b/src/tests/test-gradient-sample-3d.cc
similarity index 100%
rename from src/test-gradient-sample-3d.cc
rename to src/tests/test-gradient-sample-3d.cc
diff --git a/src/test-gradient-sample-nonsmooth.cc b/src/tests/test-gradient-sample-nonsmooth.cc
similarity index 100%
rename from src/test-gradient-sample-nonsmooth.cc
rename to src/tests/test-gradient-sample-nonsmooth.cc
diff --git a/src/test-gradient-sample-steep.cc b/src/tests/test-gradient-sample-steep.cc
similarity index 100%
rename from src/test-gradient-sample-steep.cc
rename to src/tests/test-gradient-sample-steep.cc
diff --git a/src/test-gradient-sample-steep2.cc b/src/tests/test-gradient-sample-steep2.cc
similarity index 100%
rename from src/test-gradient-sample-steep2.cc
rename to src/tests/test-gradient-sample-steep2.cc
diff --git a/src/test-gradient-sample-verysteep.cc b/src/tests/test-gradient-sample-verysteep.cc
similarity index 100%
rename from src/test-gradient-sample-verysteep.cc
rename to src/tests/test-gradient-sample-verysteep.cc
diff --git a/src/test-gradient-sample.cc b/src/tests/test-gradient-sample.cc
similarity index 100%
rename from src/test-gradient-sample.cc
rename to src/tests/test-gradient-sample.cc
diff --git a/src/test-gradient-sample2.cc b/src/tests/test-gradient-sample2.cc
similarity index 100%
rename from src/test-gradient-sample2.cc
rename to src/tests/test-gradient-sample2.cc
diff --git a/src/test-gradient-trivial.cc b/src/tests/test-gradient-trivial.cc
similarity index 100%
rename from src/test-gradient-trivial.cc
rename to src/tests/test-gradient-trivial.cc
diff --git a/src/test-minimise2.cc b/src/tests/test-minimise2.cc
similarity index 100%
rename from src/test-minimise2.cc
rename to src/tests/test-minimise2.cc
diff --git a/src/test_circle_1.m b/src/tests/test_circle_1.m
similarity index 100%
rename from src/test_circle_1.m
rename to src/tests/test_circle_1.m
diff --git a/src/test_circle_10.m b/src/tests/test_circle_10.m
similarity index 100%
rename from src/test_circle_10.m
rename to src/tests/test_circle_10.m