ant + cobertura でカバレッジを計るときは、jvmをforkさせることは必須

It is important to set fork="true" because of the way Cobertura works. It only flushes its changes to the coverage data file to disk when the JVM exits. If JUnit runs in the same JVM as ant, then the coverage data file will be updated AFTER ant exits, but you want to run cobertura-report BEFORE ant exits.

Cobertura: Ant Task Reference