代码改变世界

图解VS2008单元测试及查看代码覆盖率

2010-02-25 13:55  杨延成  阅读(8881)  评论(5编辑  收藏  举报

VS2008本身集成有单元测试工具,我们可以拿来用一下,首先在创建测试的方法上右键,选择创建单元测试,如下图示:

在弹出的对话框中,选择要测试的方法,如下图示:

单击OK按钮,即可创建一个测试工程,工程创建好后,会看到如下代码:

代码
/// <summary>
///A test for Add
///</summary>
[TestMethod()]
public void AddTest()
{
int n = 10; // TODO: Initialize to an appropriate value
int m = 0; // TODO: Initialize to an appropriate value
int expected = 0; // TODO: Initialize to an appropriate value
int actual;
actual
= TestedClass.Add(n, m);
Assert.AreEqual(expected, actual);
Assert.Inconclusive(
"Verify the correctness of this test method.");
}

这就是自动为我们创建好的代码了,很简单,可以自己修改一下测试用例,然后点击运行工程就可以运行了,会看到如下图示的运行结果:

这里显示了测试的情况,还可以双击查看具体测试报告,并且可以将测试报告导出。

 

当然,如果我们还想再添加被测试的方法也很简单,如,我用下面这段代码增加了对Minus方法的测试

代码

[TestMethod]
public void MinusTest()
{
int n = 10;
int m = 1;
int result = 10;
Assert.AreEqual(TestedClass.Minus(n, m), result);

}

现在可以直接点RUN运行了。

 

VSTS还提供了查看代码覆盖指标。

他包含了一个代码覆盖工具,可以详细解释被执行代码的覆盖率,并突出显示哪些代码被执行,哪些代码没有被执行。VSTS 在生成单元测试框架时,默认没有启用“代码覆盖”功能。

首先打开“本地测试运行配置文件” localtestrun.testrunconfig , 双击localtestrun.testrunconfig”文件,弹出该对话框窗口。
如下图示:

在其对话框窗口的左侧选择“代码覆盖率”,然后在右侧的“要检测的项目”中选择要检测的项目。
单击“apply”按钮。

 

在“代码覆盖率结果”窗口中可查看代码覆盖率。
在“代码覆盖率结果”窗口中,我们还可以查看单元测试中代码覆盖的块数,以及代码覆盖的百分比信息。如下图示:

 

 

VS2008的单元测试可以集成NUnit也可以使用他自带的,这个可以以自己的喜好来进行选择,我个人比较喜欢Nunit方式。

VS2008的本身单元测试不仅可以显示测试结果,还可以显示覆盖率等信息,操作比较方便。NUnit轻量,开源,与其它工具整合性好,易于实现自动化测试,要显示覆盖率还要集成NCover,我会在下篇文章进行介绍如何集成。