Hi! I just found the `testcover' package in Emacs 23.1.1 (the source in Emacs 24 changed only very slightly). I tried it with my tests for rst.el and after a lot of investigation got it to work with my `ert' based test suite. I had to solve two problems. When I ran my ert tests some of them fail with No setf-method known for testcover-after I looked into this and found `defsetf' in `cl-macs'. `testcover-after' is a function which has only some side effect. I think (defsetf testcover-after (idx val) (store) (list 'progn (list 'testcover-after idx val) (list 'setf val store))) does the right thing. At least the error messages described above vanish for me. AFAICS the only thing which can go wrong with this setf-method seems to be the double evaluation of `val' - although I don't know whether this really is evaluated twice in this context. Too much macro... I still had another error left, however. Value of form marked with `1value' does vary: ... It took me some time to discover that for some reason `testcover' treats `defcustom' like `defconst'. This is of course lethal for a test which changes a customizable variable temporarily - e.g. by `let' - to test a certain functionality. For now I defined (defun rst-defcustom-testcover () "Remove all customized variables from `testcover-module-constants'. This seems to be a bug in `testcover': `defcustom' variables are considered constants. Revert it with this function after each `defcustom'." (when (boundp 'testcover-module-constants) (setq testcover-module-constants (delq nil (mapcar (lambda (sym) (if (not (plist-member (symbol-plist sym) 'standard-value)) sym)) testcover-module-constants))))) and put a call to this function after every `defcustom'. This helps but IMHO is of selected ugliness. I'd rather suggest this patch (against Emacs 24 sources): --- ../emacs/trunk/lisp/emacs-lisp/testcover.el 2012-04-20 19:50:27.000000000 +0200 +++ /home/stefan/tmp/testcover.el 2012-09-10 08:58:01.000000000 +0200 @@ -297,7 +297,7 @@ (push (cadr form) testcover-module-1value-functions)) (when (eq val 'maybe) (push (cadr form) testcover-module-potentially-1value-functions))) - ((memq fun '(defconst defcustom)) + ((eq fun 'defconst) ;;Define this symbol as 1-valued (push (cadr form) testcover-module-constants) (testcover-reinstrument-list (cddr form))) In addition it would be certainly helpful to integrate the `defsetf' form above somehow in `testcover'. However, I have no idea how to do this in a good way. Grüße Stefan