Commoner does this internally, but if you need more make-like behavior for your other build tasks, there is finally a grunt plugin to build only newer files. You could evaluate it if you want to shave a few (sub)seconds from your testing cycle. (Needs experimenting how to handle file renames, deletions etc).
https://github.com/tschaub/grunt-newer