持续集成的一个关键功能是确保正在进行的测试包含由CI服务器构建的所有代码.在CI服务器执行构建之后,必须确保测试用例到位以获得所需的代码测试.每个CI服务器都能够将单元测试用例作为 CI套件的一部分运行.在 .Net 中,单元测试是内置于 .Net框架中的一项功能,同样的内容也可以合并到CI服务器中.
本章将介绍如何在 .Net 中定义测试用例,然后让我们的TeamCity服务器在构建完成后运行此测试用例.为此,我们首先需要确保为示例项目定义单元测试.
为此,我们必须非常谨慎地遵循后续步骤.
第1步 : 让我们为我们的解决方案添加一个新类,它将用于我们的单元测试.该类将有一个名称变量,它将保存字符串"持续集成".该字符串将显示在网页上.右键单击Simple Project并选择菜单选项 Add → Class .
Step 2 : 为该类命名为 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
为确保我们的代码能够正常使用这些更改,您可以在Visual Studio中运行代码.编译完成后,您应该得到以下输出.
第6步 : 现在是时候将我们的单元测试添加到项目中了.右键单击解决方案,然后选择菜单选项添加 → 新项目.
第7步 : 导航到测试,然后在右侧选择单元测试项目.将名称命名为 DemoTest ,然后单击"确定".
第8步 : 在演示测试项目中,您需要添加对Simple项目和必要的测试程序集的引用.右键单击项目并选择菜单选项添加参考.
步骤9 : 在出现的下一个屏幕中,转到Projects,选择 Simple Reference 并单击OK.
步骤10 : 再次单击添加引用,转到"程序集",然后在"搜索"框中键入 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,如下面的屏幕截图所示.
在出现的下一个屏幕中,添加以下值 :
选择跑步者类型作为Visual Studio测试.
输入可选的测试步骤名称.
选择测试引擎类型为 VSTest .
选择测试引擎版本为 VSTest2013 .
在测试文件名称中,将位置提供为 DemoTest \ bin \Debug \ DemoTest.dll - 请记住 DemoTest 是我们项目的名称,其中包含我们的单元测试. DemoTest.dll 将由我们的第一个构建步骤生成.
单击"保存",将在屏幕末尾显示.
现在,您的项目将有2个构建步骤.第一个是Build步骤,它将构建您的应用程序代码和测试项目.接下来将用于运行您的测试用例.
第15步 : 现在是时候在Git中签入所有代码了,这样就可以触发整个构建过程.唯一的区别是这次,你需要从演示父文件夹运行 git add 和 git commit 命令,如下面的屏幕截图所示.
现在当构建被触发时,你会看到一个初始输出,表示测试已通过.
第16步 : 如果单击Test传递结果并转到Test选项卡,您将看到UnitTest1已执行并且已通过.