diff --git a/tests/coverage.hs b/tests/coverage.hs
new file mode 100644
index 0000000..3600951
--- /dev/null
+++ b/tests/coverage.hs
@@ -0,0 +1,10 @@
+#!/usr/bin/env runhaskell
+
+import System.Cmd
+
+-- generate appropriate .hpc files
+main = do
+    system $ "rm -rf *.tix"
+    system $ "dist/build/xmonad/xmonad --run-tests"
+    system $ "hpc markup xmonad --exclude=Main --exclude=Properties --exclude=XMonad --exclude=Paths_xmonad"
+    system $ "hpc report xmonad --exclude=Main --exclude=Properties --exclude=XMonad --exclude=Paths_xmonad"