diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8cbc9d3513196e99810ce6439a93cb45e518e2dd..d668d9e12e69ca2a4809b07e0e97eb0aef9daa4c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -53,6 +53,7 @@ ADD_DEFINITIONS(-DBOOST_FILESYSTEM_VERSION=2)
 ADD_SUBDIRECTORY(src)
 ADD_SUBDIRECTORY(include)
 ADD_SUBDIRECTORY(doc)
+ADD_SUBDIRECTORY(unitTesting)
 
 SETUP_PROJECT_FINALIZE()
 
diff --git a/unitTesting/CMakeLists.txt b/unitTesting/CMakeLists.txt
index 34c5be5c95f3f070b50c5ea08f6b9c6d34b17b67..eca30b2584efd2cc5d643ae5db42645ee0d47b44 100644
--- a/unitTesting/CMakeLists.txt
+++ b/unitTesting/CMakeLists.txt
@@ -2,23 +2,34 @@
 #  Copyright 
 # 
 
-SET(EXECUTABLE_NAME test${PROJECT_NAME})
+INCLUDE(CTest)
+
+set(Python_ADDITIONAL_VERSIONS 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0)
+INCLUDE(../cmake/python.cmake)
+FINDPYTHON()
+INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
+
+INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
+LINK_DIRECTORIES(${Boost_LIBRARY_DIRS} ${PYTHON_LIBRARY_DIRS})
+
 
 ADD_DEFINITIONS(-DDEBUG=2)
 
 # provide path to library libdynamic-graph.so
 LINK_DIRECTORIES(${DYNAMIC_GRAPH_LIBRARY_DIRS})
 
-ADD_EXECUTABLE(${EXECUTABLE_NAME}
-  main.cc
-  dynamic-graph-python-test.cc)
-
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
-
 LINK_DIRECTORIES(${${PROJECT_NAME}_BINARY_DIR}/src)
-TARGET_LINK_LIBRARIES(${EXECUTABLE_NAME}
-  dynamic-graph-python)
 
 # Add dynamic-graph compilation flags and link to library libdynamic-graph.so
 ADD_DEFINITIONS(${DYNAMIC_GRAPH_CFLAGS})
-TARGET_LINK_LIBRARIES(${EXECUTABLE_NAME} ${DYNAMIC_GRAPH_LIBRARIES})
+
+
+SET(EXECUTABLE_NAME interpreter-test)
+
+ADD_EXECUTABLE(${EXECUTABLE_NAME} interpreter-test.cc)
+TARGET_LINK_LIBRARIES(${EXECUTABLE_NAME} dynamic-graph-python)
+TARGET_LINK_LIBRARIES(${EXECUTABLE_NAME} ${DYNAMIC_GRAPH_LIBRARIES} -lpthread -ldl  -lutil)
+
+ADD_TEST(${EXECUTABLE_NAME}  ${EXECUTABLE_NAME})
+
diff --git a/unitTesting/interpreter-test.cc b/unitTesting/interpreter-test.cc
new file mode 100644
index 0000000000000000000000000000000000000000..268ba304eda425e32d68a94dfa3ff8216852fbb8
--- /dev/null
+++ b/unitTesting/interpreter-test.cc
@@ -0,0 +1,33 @@
+// The purpose of this unit test is to evaluate the memory consumption 
+// when call the interpreter.
+#include "dynamic-graph/python/interpreter.hh"
+
+int main(int argc, char ** argv)
+{
+  int numTest = 1;
+  if (argc > 1)
+    numTest = atoi(argv[1]);
+
+  dynamicgraph::python::Interpreter interp;
+  std::string command;
+
+  for (int i=0; i<numTest; ++i)
+  {
+    //correct input
+    command = "print \"Hello world\"";
+    interp.python(command);
+
+    //incorrect input
+    command = "print Hello";
+    interp.python(command);
+
+    std::string result;
+    std::string out;
+    std::string err;
+    //correct input
+    interp.python("print \"I am the interpreter\"", result, out, err);
+    //incorrect input
+    interp.python("print I am the interpreter", result, out, err);
+  }
+  return 0;
+}