diff --git a/cmake/VisualStudio2013.vcxproj.user.in b/cmake/VisualStudio2013.vcxproj.user.in
new file mode 100644
index 0000000000000000000000000000000000000000..76919a4e1b919ae70a8ceb454ebfe9ec8e5eebf6
--- /dev/null
+++ b/cmake/VisualStudio2013.vcxproj.user.in
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">	 	
+		<LocalDebuggerEnvironment>PATH=@_DLL_PATH_DEBUG@;%PATH%</LocalDebuggerEnvironment>	 	
+		<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">	 	
+		<LocalDebuggerEnvironment>PATH=@_DLL_PATH_RELEASE@;%PATH%</LocalDebuggerEnvironment>	 	
+		<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">	 	
+		<LocalDebuggerEnvironment>PATH=@_DLL_PATH_RELEASE@;%PATH%</LocalDebuggerEnvironment>	 	
+		<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">	 	
+		<LocalDebuggerEnvironment>PATH=@_DLL_PATH_RELEASE@;%PATH%</LocalDebuggerEnvironment>	 	
+		<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+	</PropertyGroup>	
+</Project>
diff --git a/cmake/catch.cmake b/cmake/catch.cmake
index 06791db85894e341ce836707185577f462f32fbb..95c73438c2b9c42fa85260b696350357a39ac15e 100644
--- a/cmake/catch.cmake
+++ b/cmake/catch.cmake
@@ -25,8 +25,20 @@ include(WarningLevels)
 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 
 
+function(CONFIGURE_MSVC_USERFILE TARGET_NAME PATH_TO_ADD)
+  file(TO_NATIVE_PATH "${PATH_TO_ADD}/Release" _DLL_PATH_RELEASE)
+  file(TO_NATIVE_PATH "${PATH_TO_ADD}/Debug" _DLL_PATH_DEBUG)
+  set(SOURCE_USER_FILE
+    "${CMAKE_SOURCE_DIR}/cmake/VisualStudio2013.vcxproj.user.in")
+  set(DESTINATION_USER_FILE
+    "${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.vcxproj.user")
+  message("DESTINATION_USER_FILE: ${DESTINATION_USER_FILE}")
+  configure_file(${SOURCE_USER_FILE} ${DESTINATION_USER_FILE} @ONLY)
+endfunction()
+
+
 function(ADD_TEST_CATCH_INTERNAL_
-    NAME SOURCES HEADERS INCLUDE_DIRECTORIES LINK_LIBRARIES)
+    NAME SOURCES HEADERS INCLUDE_DIRECTORIES LINK_LIBRARIES PATH_TO_ADD)
   add_executable(${NAME} ${SOURCES} ${HEADERS})
   target_include_directories(${NAME} PRIVATE ${INCLUDE_DIRECTORIES})
   target_link_libraries(${NAME} ${LINK_LIBRARIES})
@@ -35,6 +47,10 @@ function(ADD_TEST_CATCH_INTERNAL_
 
   set_property(TARGET ${NAME} PROPERTY FOLDER "Tests")
   source_group("Sources" FILES ${SOURCES} ${HEADERS})
+
+  if(WIN32 AND MSVC)
+    configure_msvc_userfile(${NAME} ${PATH_TO_ADD})
+  endif()
 endfunction()
 
 
@@ -51,7 +67,8 @@ function(ADD_TEST_CATCH)
   # parse arguments
   set(options )
   set(oneValueArgs NAME CATCH_MAIN)
-  set(multiValueArgs SOURCES HEADERS INCLUDE_DIRECTORIES LINK_LIBRARIES)
+  set(multiValueArgs
+    SOURCES HEADERS INCLUDE_DIRECTORIES LINK_LIBRARIES PATH_TO_ADD)
   cmake_parse_arguments(ADD_TEST_CATCH
     "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
 
@@ -69,7 +86,9 @@ function(ADD_TEST_CATCH)
     "${ADD_TEST_CATCH_SOURCES}"
     "${ADD_TEST_CATCH_HEADERS}"
     "${ADD_TEST_CATCH_INCLUDE_DIRECTORIES}"
-    "${ADD_TEST_CATCH_LINK_LIBRARIES};${ADD_TEST_CATCH_NAME}_catch_main")
+    "${ADD_TEST_CATCH_LINK_LIBRARIES};${ADD_TEST_CATCH_NAME}_catch_main"
+    "${ADD_TEST_CATCH_PATH_TO_ADD}"
+  )
 
   # add test for each test source file
   foreach(TEST_SOURCE_FILE ${ADD_TEST_CATCH_SOURCES})
@@ -78,6 +97,8 @@ function(ADD_TEST_CATCH)
       "${TEST_SOURCE_FILE}"
       ""
       "${ADD_TEST_CATCH_INCLUDE_DIRECTORIES}"
-      "${ADD_TEST_CATCH_LINK_LIBRARIES};${ADD_TEST_CATCH_NAME}_catch_main")
+      "${ADD_TEST_CATCH_LINK_LIBRARIES};${ADD_TEST_CATCH_NAME}_catch_main"
+      "${ADD_TEST_CATCH_PATH_TO_ADD}"
+    )
   endforeach()
 endfunction()
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 84939b4501920219135dbb8b6be3324fdc920cea..4d14ba5e0926e8df2ab46614856ef05cd9c7d16e 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -28,6 +28,7 @@ add_test_catch(NAME "phoenix-tests"
   CATCH_MAIN src/tests.cpp
   INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR} phoenix
   LINK_LIBRARIES phoenix
+  PATH_TO_ADD ${PROJECT_BINARY_DIR}/library
 )
 add_test_cpplint(NAME "phoenix-tests--cpplint"
   ${PHOENIX_TEST_SOURCES}