diff --git a/tests/qml/main.cpp b/tests/qml/main.cpp
index 2fbecebe47a562a758c7ce3457c2760516374a64..a08833481f84fe189aa74478d84f4646691fcbba 100644
--- a/tests/qml/main.cpp
+++ b/tests/qml/main.cpp
@@ -44,6 +44,16 @@
 #include <windows.h>
 #endif
 
+#ifdef Q_OS_WIN
+#define DATA_DIR    "JAMI_DATA_HOME"
+#define CONFIG_DIR  "JAMI_CONFIG_HOME"
+#define CACHE_DIR   "JAMI_CACHE_HOME"
+#else
+#define DATA_DIR    "XDG_DATA_HOME"
+#define CONFIG_DIR  "XDG_CONFIG_HOME"
+#define CACHE_DIR   "XDG_CACHE_HOME"
+#endif
+
 #include <atomic>
 #include <thread>
 
@@ -178,9 +188,9 @@ main(int argc, char** argv)
     QDir(jamiConfigDir).removeRecursively();
     QDir(jamiCacheDir).removeRecursively();
 
-    bool envSet = qputenv("JAMI_DATA_HOME", jamiDataDir.toLocal8Bit());
-    envSet &= qputenv("JAMI_CONFIG_HOME", jamiConfigDir.toLocal8Bit());
-    envSet &= qputenv("JAMI_CACHE_HOME", jamiCacheDir.toLocal8Bit());
+    bool envSet = qputenv(DATA_DIR, jamiDataDir.toLocal8Bit());
+    envSet &= qputenv(CONFIG_DIR, jamiConfigDir.toLocal8Bit());
+    envSet &= qputenv(CACHE_DIR, jamiCacheDir.toLocal8Bit());
     if (!envSet)
         return 1;
 
diff --git a/tests/unittests/main_unittest.cpp b/tests/unittests/main_unittest.cpp
index 425f0a7975bbb97a2671b32e2a69bc65bd37621d..381ed39d78342a79199e14b79800c1395562c6ff 100644
--- a/tests/unittests/main_unittest.cpp
+++ b/tests/unittests/main_unittest.cpp
@@ -22,6 +22,16 @@
 #include <QApplication>
 #include <QStandardPaths>
 
+#ifdef Q_OS_WIN
+#define DATA_DIR    "JAMI_DATA_HOME"
+#define CONFIG_DIR  "JAMI_CONFIG_HOME"
+#define CACHE_DIR   "JAMI_CACHE_HOME"
+#else
+#define DATA_DIR    "XDG_DATA_HOME"
+#define CONFIG_DIR  "XDG_CONFIG_HOME"
+#define CACHE_DIR   "XDG_CACHE_HOME"
+#endif
+
 TestEnvironment globalEnv;
 
 int
@@ -29,13 +39,18 @@ main(int argc, char* argv[])
 {
     QDir tempDir(QStandardPaths::writableLocation(QStandardPaths::TempLocation));
 
-    auto jamiDataDir = tempDir.absolutePath() + "\\jami_test\\jami";
-    auto jamiConfigDir = tempDir.absolutePath() + "\\jami_test\\.config";
-    auto jamiCacheDir = tempDir.absolutePath() + "\\jami_test\\.cache";
+    auto jamiDataDir = tempDir.absolutePath() + "/jami_test/jami";
+    auto jamiConfigDir = tempDir.absolutePath() + "/jami_test/.config";
+    auto jamiCacheDir = tempDir.absolutePath() + "/jami_test/.cache";
+
+    // Clean up the temp directories.
+    QDir(jamiDataDir).removeRecursively();
+    QDir(jamiConfigDir).removeRecursively();
+    QDir(jamiCacheDir).removeRecursively();
 
-    bool envSet = qputenv("JAMI_DATA_HOME", jamiDataDir.toLocal8Bit());
-    envSet &= qputenv("JAMI_CONFIG_HOME", jamiConfigDir.toLocal8Bit());
-    envSet &= qputenv("JAMI_CACHE_HOME", jamiCacheDir.toLocal8Bit());
+    bool envSet = qputenv(DATA_DIR, jamiDataDir.toLocal8Bit());
+    envSet &= qputenv(CONFIG_DIR, jamiConfigDir.toLocal8Bit());
+    envSet &= qputenv(CACHE_DIR, jamiCacheDir.toLocal8Bit());
     if (!envSet)
         return 1;