lcov使ってカバレッジとったら## not executedになっていたので調査。
当初は以下の対処で直るのかなと思っていたが違った。
http://d.hatena.ne.jp/yupo5656/20051215/p2
原因はlcovの実行の仕方だったみたい。
templateクラスを同じtemplate引数でインスタンス化しているcppファイルが複数あったため、lcovでカバレッジ取得すると最後のファイルの分だけでカバレッジの結果が上書きされていた。
lcovの実行方法直すのはやり方がよくわからなかったので、呼び出しを1ファイルからだけにして解決した。