-covオプションを使うとできる。
適当なプログラムを作る。
import std.stdio; enum Fruit { Apple, Orange, } int tested1(int val) { return (val % 2 == 1) ? val : (val == 0) ? 42 : -val; } void tested2(Fruit val) { final switch (val) { case Fruit.Apple: writeln("Apple"); break; case Fruit.Orange: writeln("Orange"); break; } } unittest { assert(23 == tested1(23)); tested2(Fruit.Apple); }
$ dmd -g -unittest -main -cov app.d
こういう形式のsource-app.lstというテキストファイルが生成。
|import std.stdio; | |enum Fruit |{ | Apple, | Orange, |} | |int tested1(int val) |{ 2| return (val % 2 == 1) ? val : (val == 0) ? 42 : -val; |} | |void tested2(Fruit val) |{ 1| final switch (val) { 2| case Fruit.Apple: writeln("Apple"); 1| break; 0000000| case Fruit.Orange: writeln("Orange"); 0000000| break; | } |} | |unittest |{ 1| assert(23 == tested1(23)); 1| tested2(Fruit.Apple); |} source/app.d is 75% covered