📜  持续集成-测试

📅  最后修改于: 2020-12-07 05:16:44             🧑  作者: Mango


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

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

为此,我们必须极其谨慎地遵循后续步骤。

步骤1-让我们向解决方案中添加一个新类,该类将在我们的单元测试中使用。此类将具有一个名称变量,该变量将包含字符串“ Continuous Integration”。该字符串将显示在网页上。右键单击简单项目,然后选择菜单选项添加→类

新增课程

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

教程CS

步骤3-打开Tutorial.cs文件,并在其中添加以下代码。这段代码仅创建一个名为Name的字符串,并在构造函数中将该名称分配给一个字符串值,称为Continuous Integration

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文件中创建。

TutorialsPoint1
   
   
   
      
)

只是为了确保我们的代码可以很好地应对这些更改,您可以在Visual Studio中运行代码。编译完成后,您应该获得以下输出。

连续积分输出

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

右键单击解决方案

步骤7-导航到“测试”,然后在右侧,选择“单元测试项目” 。命名为DemoTest ,然后单击“确定”。

单元测试项目

步骤8-在您的Demo Test项目中,您需要添加对Simple项目和必要的测试程序集的引用。右键单击项目,然后选择菜单选项添加参考

添加参考

步骤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中,选择菜单选项测试→运行→所有测试

试运行所有测试

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

测试成功

在TeamCity中启用连续测试–既然所有测试用例均已准备就绪,是时候将其集成到我们的Team City服务器中了。

步骤13-为此,我们需要在项目配置中创建一个构建步骤。转到项目主页,然后单击“编辑配置设置”。

编辑配置设置

步骤14-然后转到构建步骤→MS Build,然后单击添加构建步骤,如以下屏幕截图所示。

建立步骤女士建立

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

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

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

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

  • 选择测试引擎版本为VSTest2013

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

  • 单击“保存”,它将在屏幕末尾显示。

保存按钮

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

建立步骤

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

演示父文件夹

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

初始输出

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

单元测试1