Crowi の Gruntfile.js を眺めていたら、grunt-contrib-watch 用のタスクが次のように書かれていた。
[snip]
    watch: {
      css: {
        files: paths.styles,
        tasks: ['sass'],
      },
      dev: {
        files: paths.all,
        tasks: ['dev'],
      },
      test: {
        files: paths.all,
        tasks: ['test'],
      },
      default: {
        files: paths.all,
        tasks: ['default'],
      },
[snip]
見た感じだと default 以外も指定できそうなのだが、 grunt watch の実行時にどうやって個別のタスクを指定するのか、パッと出てこなかったので調べた。
「watch + コロン + タスク名」で指定してやるのが正解だった。
% grunt watch:test
テストだけ監視して実行したい場合には、こういう指定をすれば良いわけだ。