Code Digger使用了Pex引擎,它有一个网页版
点这里
比如有一段判断闰年的代码,Pex会把if…else 这些分支全部测到
using System;
public class Program {
public static void Puzzle(int day, out int year) {
year = 1980;
while (day > 365) {
// Does this loop terminate for any day?
// Ask Pex to find out!
if (IsLeapYear(year)) {
if (day > 366) {
day -= 366;
year += 1;
}
}
else {
day -= 365;
year += 1;
}
}
}
private static bool IsLeapYear(int year) {
return (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0));
}
}
点击网页下击的”Ask Pex”,引擎会对代码进行覆盖率100%的分析
引擎也会对测试代码自动生成测试方法
int i = 0;
Puzzle(366, out i);
这个工具默认只能对”可移植类库项目”(portable class library)进行测试,但是这个限制可以在设置里剔除.
在VS的”工具”下找到”选项”,设置DisableCodeDiggerPortableClassLibraryRestriction为True
一个老外的使用心得
不知道他是使用什么工具测的代码覆盖率,呵呵