使用VS2005进行代码覆盖率分析
2007-12-04 15:33
706 查看
下面通过一个简单的例子来讲解VS2005是如何做代码分析的(此处所做的代码分析是在单元测试之后进行的,其分析代码仍然使用上节的做和代码)
1、上节的原始代码和单元测试代码分别如下:
//原始代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public int Add(int a,int b) //构建ADD方法
{
return a +b ;
}
private void button1_Click(object sender, EventArgs e)
{
int temp = 0;
temp=Add(Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text));//调用ADD方法
textBox3.Text = temp.ToString();
}
private void label2_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
}
//单元测试代码
///<summary>
///Add (int, int) 的测试
///</summary>
[TestMethod()]
public void AddTest()
{
Form1 target = new Form1();
int a = 30; // TODO: 初始化为适当的值
int b = 15; // TODO: 初始化为适当的值
int expected = 45; //预期结果应该为:30+15=45
int actual;
actual = target.Add(a, b);
Assert.AreEqual(expected, actual);//预期结果与真实结果进行对比,如果相同则测试通过,否则失败
// Assert.Inconclusive("验证此测试方法的正确性。");注释该行
}
}
2、代码覆盖率分析
当创建了单元测试之后,在“解决方案资源管理器”下将会自动添加如下两个文件(localtestrun.testrunconfig和解决方案名称.vsmdi),打开“localtestrun.testrunconfig”文件,
1)配置要检测的项目,如下图:
2)配置运行
3)运行单元测试,在测试结果中鼠标单击右键,选择“代码覆盖率结果”,此时将会看到欲测试代码的覆盖率:
在代码覆盖率分析结果中,可以看到AddTest的覆盖率为:100。00%,而其中get_TestContext覆盖率为0。00%,那是因为text3文本框是用来输出数据的,而不是用来接收数据的。
3、结论
通过使用VS2005的代码覆盖率结果分析可以很容易的对程序员自己写的代码进行覆盖率的分析,但是如果想要准确知道自己的代码覆盖率是多少,则必须详细的设计测试用例,如:a、语句覆盖测试用例,b、分支覆盖测试用例,c、条件覆盖测试用例,d、分支-条件覆盖测试用例,e、条件组合覆盖测试用例,f、路径覆盖测试用例。
原文地址:http://www.cnblogs.com/SmileMan/archive/2007/11/05/949418.html
1、上节的原始代码和单元测试代码分别如下:
//原始代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public int Add(int a,int b) //构建ADD方法
{
return a +b ;
}
private void button1_Click(object sender, EventArgs e)
{
int temp = 0;
temp=Add(Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text));//调用ADD方法
textBox3.Text = temp.ToString();
}
private void label2_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
}
//单元测试代码
///<summary>
///Add (int, int) 的测试
///</summary>
[TestMethod()]
public void AddTest()
{
Form1 target = new Form1();
int a = 30; // TODO: 初始化为适当的值
int b = 15; // TODO: 初始化为适当的值
int expected = 45; //预期结果应该为:30+15=45
int actual;
actual = target.Add(a, b);
Assert.AreEqual(expected, actual);//预期结果与真实结果进行对比,如果相同则测试通过,否则失败
// Assert.Inconclusive("验证此测试方法的正确性。");注释该行
}
}
2、代码覆盖率分析
当创建了单元测试之后,在“解决方案资源管理器”下将会自动添加如下两个文件(localtestrun.testrunconfig和解决方案名称.vsmdi),打开“localtestrun.testrunconfig”文件,
1)配置要检测的项目,如下图:
2)配置运行
3)运行单元测试,在测试结果中鼠标单击右键,选择“代码覆盖率结果”,此时将会看到欲测试代码的覆盖率:
在代码覆盖率分析结果中,可以看到AddTest的覆盖率为:100。00%,而其中get_TestContext覆盖率为0。00%,那是因为text3文本框是用来输出数据的,而不是用来接收数据的。
3、结论
通过使用VS2005的代码覆盖率结果分析可以很容易的对程序员自己写的代码进行覆盖率的分析,但是如果想要准确知道自己的代码覆盖率是多少,则必须详细的设计测试用例,如:a、语句覆盖测试用例,b、分支覆盖测试用例,c、条件覆盖测试用例,d、分支-条件覆盖测试用例,e、条件组合覆盖测试用例,f、路径覆盖测试用例。
原文地址:http://www.cnblogs.com/SmileMan/archive/2007/11/05/949418.html
相关文章推荐
- 使用VS2005进行代码覆盖率分析
- [Android]使用Emma进行单体测试代码覆盖率分析
- 使用 Ratinal Purecoverage 进行 C++ 代码覆盖率分析
- 使用 Ratinal Purecoverage 进行 C++ 代码覆盖率分析
- 使用 profile 进行python代码性能分析
- VCS中使用coverage metrics进行代码覆盖分析
- 使用GDB进行代码覆盖率测试
- 使用 Contest 分析测试用例的代码覆盖率
- 使用 Eclipse EMMA进行代码覆盖率的测试
- Xcode常用技巧(1)-使用Xcode进行代码分析及GDB调试
- iOS使用sonar进行代码分析
- 使用 Gradle 插件进行代码分析
- 使用真机进行IOS功能测试代码覆盖率统计
- (1)写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”); (2)编写单元测试进行测试; (3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%。
- 使用matlab对行人视频进行检测的代码的分析
- 在Java中使用EclEmma插件进行代码覆盖率检测
- ant中使用cobertura分析测试用例的代码覆盖率
- 基于visual c++之windows核心编程代码分析(16)使用邮槽进行进程通信
- 使用代码覆盖率分析度量测试的完整性
- ant中使用cobertura分析测试用例的代码覆盖率