概述:在vs2010中软件测试已经提供了很多功能以及管理工具。这其中包括有:测试视图、测试项目编辑、测试结果视图、代码覆盖率结果、测试运行等以及在vs2010中新增的功能Test Impact View
工具介绍:首先我们新建了一个简单的待测试的工程:ConsoleApplicationTest1,添加一个类Class1,添加一段简单的代码,如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplicationTest1
{
public class Class1
{
public Int32 AddInteger(Int32 num1, Int32 num2)
{
return num1 + num2;
}
}
}
接下来我们创建一个测试工程,工程默认命名可以不用修改,直接点击OK按钮
现在我们的工程结构就变成一下这样。多出了一个TestProject1工程,以及另外三个文件:
AutomationTest.vamdi是一个xml文件,它包含测试列表中的所有信息,直接双击它可以打开测试列表编辑器
其余两个文件是用于配置。
我们要写单元测试,那我们必须要把被测试的工程引用进TestProject1工程,然后修改UnitTest1.cs代码如下:
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using ConsoleApplicationTest1;
namespace TestProject1
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
Class1 class1 = new Class1();
Int32 num1 = 1;
Int32 num2 = 5;
Int32 actualNum = class1.AddInteger(num1, num2);
Assert.AreEqual<Int32>(6, actualNum);
}
}
}
现在我们就完成乐一个简单的单元测试了。允许测试代码和我们平常运行代码有点不同,不能直接用ctrl+F5来运行,也不能直接使用F5来调试代码,毕竟一个测试工程只是一个类库工程,我们要用到vs2010里面提供的一排测试按钮用来运行以及测试代码。
这一排按钮用于测试项目的运行工作:
按钮一、新建测试
按钮二、运行当前上下文中的测试
按钮三、运行解决方案中的所有测试
按钮四、所有受影响的测试
按钮五、调试当前上下文中的测试
按钮六、调试解决方案中所有的测试
按钮七、调试所有受影响的测试
按钮八、测试视图
按钮九、测试列表编辑器
按钮十、测试结果
按钮十一、代码覆盖率结果
按钮十二、测试运行
按钮十三、测试受影响的视图
测试视图
vs2010中提供了测试视图窗口来查看当前解决方案中所有的测试案例。我们vs2010的Test菜单项中,选中windows选项,其中包括我们所列举的窗口,我们打开测试视图窗口:
测试视图按钮窗口可以为我们提供各种分组及过滤条件来显示我们的测试用例,在这个窗口的最左上角有一个按钮,我们可以通过单击它来运行或者调试我们选中的测试用例。
此外,我们还可以通过该窗口右键,选中添加/删除测试案例
测试列表编辑器
测试列表编辑器拥有测试视图的所有功能,但是测试列表编辑器还提供了更多的功能,可以将多个测试用例合并成一个新德测试列表。
测试结果视图
该窗口为我们提供测试用例运行的状态、错误信息以及提供按钮让我们重新按钮或者调试我们的测试用例,不过他是否通过或者等功能,在测试结果中还可以导入和导出测试结果,我们也可以在每个通过的测试用例上双击查看等多的详细报告或者错误定位。
在vs2010中无论我们执行什么样的测试,总会有一个测试结果生成,它是个xml文件,后缀名为,trx,我们可以在测试结果视图中将它导出来进行保存。
代码覆盖率视图
vs提供在测试的过程中检查代码覆盖率的功能。在测试工程中,默认是没有开启这个功能的,我们需要手动去配置中开启。我们点开local.testsettins这个文件,选择“数据和诊断”这个按钮
然后找到代码覆盖率这个选项,选中选择应用,然后双击这个按钮,出现了如下视图,找到我们要测试的文件,点击确定
配置完成之后,我们重新运行一下我们写的测试用例,然后在我们可以打开“代码覆盖率结果”视图,查看我们的代码覆盖率的情况了。
代码覆盖率的结果也可以进行单独的导出保存。