diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index d0e82e97f..863e9dd8e 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -77,7 +77,8 @@ add_definitions(-g)
 add_definitions(-DSUBSURFACE_TEST_DATA="${SUBSURFACE_TEST_DATA}")
 
 # Build QML test runner
-add_executable(TestQML testqml.cpp )
+# add_executable demands relative path, therefore ../ 
+add_executable(TestQML testqml.cpp ../subsurface-helper.cpp )
 target_link_libraries(
 	TestQML
 	subsurface_corelib
diff --git a/tests/testqml.cpp b/tests/testqml.cpp
index fe411f0bb..8ba04da90 100644
--- a/tests/testqml.cpp
+++ b/tests/testqml.cpp
@@ -6,7 +6,7 @@
 #include <QQmlContext>
 
 #include "core/settings/qPref.h"
-
+#include "core/qt-gui.h"
 
 // this is the content of QUICK_TEST_MAIN amended with
 // registration of ssrf classes
@@ -33,12 +33,9 @@ int main(int argc, char **argv)
 	argc--;
 
 	// Register types
-	auto rc = qmlRegisterType<qPref>("org.subsurfacedivelog.mobile", 1, 0, "SsrfPrefs");
-	if (rc < 0) {
-		qDebug() << "ERROR: cannot register qPref";
-		return -1;
-	}
+	register_qml_types();
 
+	// Run all tst_*.qml files
 	return quick_test_main(argc, argv, "TestQML", tst_dir);
 #else
 	return 0;