Using dmd_coverSetMerge(true) to combine the coverage results of multiple runs produces garbage numbers, because the code in rt.cover that parses the existing .lst files is broken [¹].
Enabling merge only works if .lst files already exist, otherwise coverage generation is silently skipped.
Merging coverage reports should be the default, similar to gcov and dmd's -prof, as overwriting existing data is rarely useful.
[¹]: https://github.com/D-Programming-Language/druntime/blob/111892fa6ac6bb2005f4f13b4c6bad98399f65b1/src/rt/cover.d#L174
Comment #1 by github-bugzilla — 2015-05-25T23:30:58Z