文件包含影响测试运行方式的配置信息。例如,本例中可以为需要测试的代码定义代码覆盖率。运行测试结果和代码覆盖率信息,如图7所示。
图7. 代码覆盖率
在图5显示的测试列表执行中,Subtract方法被完全覆盖,但是Add方法却没有。通过VisualStudioTest菜单的SelectActiveTestRunConfiguration选项可以创建并使用多个不同的。testrunconfig文件。
图8 测试目录
如图8所示,每个测试运行结果都存储在TestResults目录的子目录内对应的扩展名为。trx的文件中。。trx文件名和子目录名默认为计算机名、用户名、测试运行的时间戳,不过它们都可以更改。如图9所示,打开显示。trx文件的测试结果窗口,从中可以看到测试运行结果,还能对测试结果进行管理。
图9 测试结果
建立正确的测试环境
每个测试运行子目录都包含一个Out目录,测试和被测试代码的运行结果都位于其中。它们可能是重要文件,例如执行测试代码相关的部署。例如,在图6中可以找到Deployment选项卡,该选项卡提供了这项功能。另外,更具粒度的方法是在测试方法上使用DeploymentItem属性,该属性需要一个部署项。
以下是代码片段: [TestClass] publicclassMoreUnitTests { [DeploymentItem(“people。xml”)] [TestMethod] publicstringGetPersonIDFromFileTest() { stringname=“Bob”; intexpectedid=1; //GetPersonIDFromFile方法从指定位置读取people.xml intactual= MyUtils.DataAccessLayer.GetPersonIDFromFile(name); Assert.AreEqual(expected,actual); } } |
另外,还有一些用于帮助建立基于测试或测试组环境的功能。当然,这需要创建和安装数据库,因为数据库是测试方法的交互对象。在图6中可以注意到“SetupAndCleanupScripts”选项卡,该选项卡提供在一组测试运行之前或之后运行脚本的功能。例如,这些脚本可以建立和清除数据库。另一个实现方法是定义带有特殊标注属性的方法。一对标注了AssemblyInitialize/AssemblyCleanup属性的方法会在测试程序集运行之前/后执行。一对标注了ClassInitialize/ClassCleanup属性的方法会在测试类运行之前/后执行。一对标注了TestInitialize/TestCleanup属性的方法会在测试类的每个测试方法运行之前/后执行。如下代码说明如何在一组测试运行之前建立数据库,之后再将其清除。