diff --git a/scripts/cmake/test/OgsTestWrapper.cmake b/scripts/cmake/test/OgsTestWrapper.cmake
index e2dbdba8d8dc659d46c8da40ca84167f8366e7b9..84dee510960774f0908175e4751bce87ebcd19e7 100644
--- a/scripts/cmake/test/OgsTestWrapper.cmake
+++ b/scripts/cmake/test/OgsTestWrapper.cmake
@@ -2,14 +2,19 @@ execute_process(
     COMMAND ${WRAPPER_COMMAND} ${EXECUTABLE} ${EXECUTABLE_ARGS}
     WORKING_DIRECTORY ${WORKING_DIRECTORY}
     RESULT_VARIABLE EXIT_CODE
-    OUTPUT_FILE ${LOG_FILE}
-    ERROR_FILE ${LOG_FILE}
+    OUTPUT_VARIABLE LOG
+    ERROR_VARIABLE LOG
 )
 
 if(EXIT_CODE STREQUAL "0")
-    if(DEFINED ENV{CI})
-        file(REMOVE ${LOG_FILE})
+    if(NOT DEFINED ENV{CI})
+        file(WRITE ${LOG_FILE} "${LOG}")
     endif()
 else()
-    message(FATAL_ERROR "Exit code: ${EXIT_CODE}; log file: ${LOG_FILE}")
+    if(CAT_LOG)
+        message(FATAL_ERROR "Exit code: ${EXIT_CODE}; log:\n${LOG}")
+    else()
+        file(WRITE ${LOG_FILE} "${LOG}")
+        message(FATAL_ERROR "Exit code: ${EXIT_CODE}; log file: ${LOG_FILE}")
+    endif()
 endif()