diff --git a/.travis.yml b/.travis.yml
index 05c3933749c24c5382d6c50da0091abf6f7b7137..5df2b12d11f6938cc6a1b8aa04594f4fc03c93ae 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,11 +2,19 @@ language: vim
 
 sudo: false
 
+os:
+  - linux
+  - osx
+
 env:
   matrix:
     - TEST_SUB_PATH=./
     - TEST_SUB_PATH=books/templates/
 
+matrix:
+  allow_failures:
+    - os: osx
+
 before_script:
   - git clone https://github.com/jreybert/djooks
   - git clone https://github.com/junegunn/vader.vim
diff --git a/test/run.sh b/test/run.sh
index fc0e26674999cb55f80915f7822f32f4e118c811..96d7578bd927b89e7dfefc9f9f27aa9dfbb3ae9a 100755
--- a/test/run.sh
+++ b/test/run.sh
@@ -5,10 +5,14 @@ if [[ $# -ne 3 ]]; then
 	exit 1
 fi
 
-export VIMAGIT_PATH=$(readlink -f $1)
-export VADER_PATH=$(readlink -f $2)
-export TEST_PATH=$(readlink -f $3)
-export TEST_SUB_PATH=$(readlink -f $TEST_PATH/$TEST_SUB_PATH)
+function prealpath() {
+python -c "import os,sys; print(os.path.realpath(os.path.expanduser(sys.argv[1])))" "${1}"
+}
+
+export VIMAGIT_PATH=$(prealpath $1)
+export VADER_PATH=$(prealpath $2)
+export TEST_PATH=$(prealpath $3)
+export TEST_SUB_PATH=$(prealpath $TEST_PATH/$TEST_SUB_PATH)
 
 if [[ ! ( -d $VIMAGIT_PATH && -d $VADER_PATH && -d $TEST_PATH && -d $TEST_SUB_PATH) ]]; then
 	echo "can't access to one of them '$VIMAGIT_PATH' '$VADER_PATH' '$TEST_PATH' '$TEST_SUB_PATH'"