开发手册 欢迎您!
软件开发者资料库

持续集成 - 测试

持续集成测试 - 从概述,软件,降低风险,版本控制,功能,要求,构建解决方案,构建脚本,构建服务器,检入源代码,在TeamCity中创建项目,定义任务,学习持续集成,构建失败通知,文档和反馈,测试,检查,数据库集成,部署,最佳实践。

持续集成的一个关键功能是确保正在进行的测试包含由CI服务器构建的所有代码.在CI服务器执行构建之后,必须确保测试用例到位以获得所需的代码测试.每个CI服务器都能够将单元测试用例作为 CI套件的一部分运行.在 .Net 中,单元测试是内置于 .Net框架中的一项功能,同样的内容也可以合并到CI服务器中.

本章将介绍如何在 .Net 中定义测试用例,然后让我们的TeamCity服务器在构建完成后运行此测试用例.为此,我们首先需要确保为示例项目定义单元测试.

为此,我们必须非常谨慎地遵循后续步骤.

第1步 : 让我们为我们的解决方案添加一个新类,它将用于我们的单元测试.该类将有一个名称变量,它将保存字符串"持续集成".该字符串将显示在网页上.右键单击Simple Project并选择菜单选项 Add →  Class .

Add Class

Step 2 : 为该类命名为 Tutorial.cs ,然后单击屏幕底部的"添加"按钮.

Tutorial CS

第3步 : 打开Tutorial.cs文件并在其中添加以下代码.此代码只创建一个名为 Name 的字符串,并在构造函数中将名称指定为字符串值持续集成.

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace Simple {   public class Tutorial {      public String Name;      public Tutorial() {         Name = "Continuous Integration";      }   }}

第4步 : 让我们对 Demo.aspx.cs 文件进行更改以使用这个新类.使用以下代码更新此文件中的代码.所以这段代码现在将创建一个上面创建的类的新实例.

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace Simple {   public partial class Demo : System.Web.UI.Page {      Tutorial tp = new Tutorial();      protected void Page_Load(object sender, EventArgs e) {         tp.Name = "Continuous Integration";      }   }}

第5步 : 在我们的 demo.aspx 文件中,现在让我们引用 tp.Name 变量,该变量是在 aspx.cs 文件中创建的.

<%@ Page Language = "C#" AutoEventWireup = "true"    CodeBehind = "Demo.aspx.cs" Inherits = "Simple.Demo" %>            TutorialsPoint1                        
            <% = tp.Name%>)         
            

为确保我们的代码能够正常使用这些更改,您可以在Visual Studio中运行代码.编译完成后,您应该得到以下输出.

持续集成输出

第6步 : 现在是时候将我们的单元测试添加到项目中了.右键单击解决方案,然后选择菜单选项添加 → 新项目.

右键点击解决方案

第7步 : 导航到测试,然后在右侧选择单元测试项目.将名称命名为 DemoTest ,然后单击"确定".

单元测试项目

第8步 : 在演示测试项目中,您需要添加对Simple项目和必要的测试程序集的引用.右键单击项目并选择菜单选项添加参考.

添加参考

步骤9 : 在出现的下一个屏幕中,转到Projects,选择 Simple Reference 并单击OK.

简单参考

步骤10 : 再次单击添加引用,转到"程序集",然后在"搜索"框中键入 Web .然后添加 System.Web 的引用.

System Web

步骤11 : 在单元测试文件中,添加以下代码.此代码将确保Tutorial类具有字符串名称变量.它还将声明Name应该等于"持续集成"的值这一事实.这将是我们简单的测试用例.

using System;using Microsoft.VisualStudio.TestTools.UnitTesting;using Microsoft.VisualStudio.TestTools.UnitTesting.Web;using System.Web.UI;using System.Web.UI.WebControls;using Simple;namespace DemoTest {   [TestClass]   public class UnitTest1 {      [TestMethod]      public void TestMethod1() {         Tutorial tp = new Tutorial();         Assert.AreEqual(tp.Name, "Continuous Integration");      }   }}

第12步 : 现在让我们在Visual Studio中运行我们的测试以确保它有效.在Visual Studio中,选择菜单选项 Test →  Run → 所有测试.

测试运行全部测试

运行后在测试中,您将看到Test成功运行在Visual Studio的左侧.

测试成功

在TeamCity中启用持续测试 - 现在所有测试用例都已到位,现在是时候将它们集成到我们的Team City服务器中.

第13步 : 为此,我们需要在Project配置中创建构建步骤.转到您的项目主页,然后单击编辑配置设置.

编辑配置设置

第14步 : 然后去Build Step →  MS Build并单击Add build step,如下面的屏幕截图所示.

Build Step Ms Build

在出现的下一个屏幕中,添加以下值 :

  • 选择跑步者类型作为Visual Studio测试.

  • 输入可选的测试步骤名称.

  • 选择测试引擎类型为 VSTest .

  • 选择测试引擎版本为 VSTest2013 .

  • 在测试文件名称中,将位置提供为 DemoTest \ bin \Debug \ DemoTest.dll  - 请记住 DemoTest 是我们项目的名称,其中包含我们的单元测试. DemoTest.dll 将由我们的第一个构建步骤生成.

  • 单击"保存",将在屏幕末尾显示.

保存按钮

现在,您的项目将有2个构建步骤.第一个是Build步骤,它将构建您的应用程序代码和测试项目.接下来将用于运行您的测试用例.

构建步骤

第15步 : 现在是时候在Git中签入所有代码了,这样就可以触发整个构建过程.唯一的区别是这次,你需要从演示父文件夹运行 git add git commit 命令,如下面的屏幕截图所示.

演示父文件夹

现在当构建被触发时,你会看到一个初始输出,表示测试已通过.

初始输出

第16步 : 如果单击Test传递结果并转到Test选项卡,您将看到UnitTest1已执行并且已通过.

单元测试1