diff --git a/tests/wscript b/tests/wscript
new file mode 100644
index 0000000..3ac955e
--- /dev/null
+++ b/tests/wscript
@@ -0,0 +1,53 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+"""
+Copyright (c) 2014  University of Memphis
+                    Regents of the University of California,
+
+This file is part of NLSR (Named-data Link State Routing).
+See AUTHORS.md for complete list of NLSR authors and contributors.
+
+NLSR is free software: you can redistribute it and/or modify it under the terms
+of the GNU General Public License as published by the Free Software Foundation,
+either version 3 of the License, or (at your option) any later version.
+
+NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.  See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+NLSR, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+"""
+
+top = '..'
+
+def build(bld):
+    # Unit tests
+    if bld.env['WITH_TESTS']:
+        unit_test_main = bld(
+            target='unit-tests-main',
+            name='unit-tests-main',
+            features='cxx',
+            source=bld.path.ant_glob(['*.cpp']),
+            use='nlsr-objects',
+          )
+
+        # nsync tests
+        unit_tests_nsync = bld.program(
+            target='../unit-tests-nsync',
+            features='cxx cxxprogram',
+            source=bld.path.ant_glob(['nsync/**/*.cc']),
+            use='nsync-objects unit-tests-main',
+            includes='.',
+            install_prefix=None,
+          )
+
+        # nlsr tests
+        unit_tests_nlsr = bld.program(
+            target='../unit-tests-nlsr',
+            features='cxx cxxprogram',
+            source=bld.path.ant_glob(['nlsr/**/*.cpp']),
+            use='nslr-objects unit-tests-main',
+            includes='.',
+            install_prefix=None,
+          )
