diff --git a/makefile b/makefile
index a99bb9bffb3f997a2877962fa19481ac9f00c59a..f2aaee08afdbaf42b91251fcd0ce5d8dc3a972fd 100644
--- a/makefile
+++ b/makefile
@@ -67,8 +67,9 @@ test: print-version easy-units
 	MAVEN_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Dcaosdb.debug=true -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=0.0.0.0:9000"
 	mvn test -X
 
+PYTEST ?= pytest-3
 test_misc:
-	cd scripting/tests/ && pytest-3 test*.py
+	$(PYTEST) scripting/tests/
 	cd misc/bend_symlinks/ && ./bend_symlinks.sh -h && test/test_suite.sh | tee test_output
 	cat misc/bend_symlinks/test_output | grep "Ran 10 tests."
 	cat misc/bend_symlinks/test_output | grep "OK"
diff --git a/scripting/bin/xls_from_csv.py b/scripting/bin/xls_from_csv.py
index 73bb6b0ac23fc2df093bd6797e864aad1f2d5592..fcb659c6c059c818feda5e2fa4d59b96c5009c7d 100755
--- a/scripting/bin/xls_from_csv.py
+++ b/scripting/bin/xls_from_csv.py
@@ -83,7 +83,7 @@ out : str
     return filename
 
 
-def _parse_arguments():
+def _parse_arguments(args):
     """Parses the command line arguments.
 
     Takes into account defaults from the environment (where known).
@@ -96,11 +96,11 @@ def _parse_arguments():
                         help=("An authentication token (not needed, only for "
                               "compatibility)."))
     parser.add_argument('tsv', help="The tsv file.")
-    return parser.parse_args()
+    return parser.parse_args(args)
 
 
 def main():
-    args = _parse_arguments()
+    args = _parse_arguments(sys.argv[1:])
     dataframe = _parse_to_dataframe(args.tsv)
     filename = _write_xls(dataframe, directory=args.tempdir)
     print(filename)
diff --git a/scripting/tests/xls_from_csv/test_xls_from_csv.py b/scripting/tests/xls_from_csv/test_xls_from_csv.py
new file mode 100644
index 0000000000000000000000000000000000000000..c806161da60e4e3e12c463e83ec3282a33c02399
--- /dev/null
+++ b/scripting/tests/xls_from_csv/test_xls_from_csv.py
@@ -0,0 +1,7 @@
+import os
+import xls_from_csv
+
+def test_args_parser():
+    os.environ["SHARED_DIR"] = "test_shared_dir"
+    args = xls_from_csv._parse_arguments(["test.tsv"])
+    assert args.tsv == "test.tsv"
diff --git a/scripting/tests/xls_from_csv/xls_from_csv.py b/scripting/tests/xls_from_csv/xls_from_csv.py
new file mode 120000
index 0000000000000000000000000000000000000000..4f44391597273690244d347fc5297ec4710a5158
--- /dev/null
+++ b/scripting/tests/xls_from_csv/xls_from_csv.py
@@ -0,0 +1 @@
+../../bin/xls_from_csv.py
\ No newline at end of file