持续集成 – 测试

持续集成 – 测试


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

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

为此,我们必须非常小心地遵循随后的步骤。

第 1 步– 让我们向我们的解决方案添加一个新类,它将在我们的单元测试中使用。这个类将有一个名称变量,它将保存字符串“Continuous Integration”。该字符串将显示在网页上。右键单击 Simple Project 并选择菜单选项Add → Class

添加班级

第 2 步– 为类命名Tutorial.cs,然后单击屏幕底部的添加按钮。

教程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" %>
<!DOCTYPE html>
<html xmlns = "http://www.w3.org/1999/xhtml">
   
   <head runat = "server">
      <title>TutorialsPoint1</title>
   </head>
   
   <body>
      <form id = "form1" runat = "server">
         <div>
            <% = tp.Name%>)
         </div>
      </form>
   </body>
   
</html>

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

持续集成输出

第 6 步– 现在是时候将我们的单元测试添加到项目中了。右键单击Solution并选择菜单选项Add → New Project

右键单击解决方案

Step 7 – 导航到Test并在右侧,选择Unit Test Project将名称命名为DemoTest,然后单击“确定”。

单元测试项目

步骤 8 – 在您的Demo Test 项目中,您需要添加对 Simple 项目和必要的测试程序集的引用右键单击该项目并选择菜单选项Add Reference

添加参考

第 9 步– 在出现的下一个屏幕中,转到“项目”,选择“简单参考”并单击“确定”。

简单参考

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

系统网页

步骤 11 – 在单元测试文件中,添加以下代码。此代码将确保 Tutorial 类具有字符串名称变量。它还将断言名称应等于“持续集成”值的事实。这将是我们简单的测试用例。

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 → All Tests

测试运行所有测试

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

测试成功

在 TeamCity 中启用持续测试 – 现在所有测试用例都已准备就绪,是时候将它们集成到我们的 Team City 服务器中了。

步骤 13 – 为此,我们需要在我们的项目配置中创建一个构建步骤。转到您的项目主页并单击编辑配置设置。

编辑配置设置

步骤 14 – 然后转到构建步骤 → MS 构建并单击添加构建步骤,如下面的屏幕截图所示。

建造步骤 建造女士

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

  • 选择运行器类型作为 Visual Studio 测试。

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

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

  • 选择测试引擎版本为VSTest2013

  • 在测试文件名中,提供DemoTest\bin\Debug\DemoTest.dll 的位置– 请记住,DemoTest是包含我们的单元测试的项目的名称。DemoTest.dll将由我们首先构建步骤产生。

  • 单击屏幕末尾的“保存”。

保存按钮

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

构建步骤

第 15 步– 现在是在 Git 中签入所有代码的时候了,以便可以触发整个构建过程。唯一的区别是这次,您需要Demo 父文件夹运行git addgit commit命令,如下面的屏幕截图所示。

演示父文件夹

现在,当构建被触发时,您将看到一个初始输出,表明测试通过。

初始输出

步骤 16 – 如果您单击测试通过结果并转到测试选项卡,您现在将看到 UnitTest1 已执行并通过。

单元测试 1

觉得文章有用?

点个广告表达一下你的爱意吧 !😁