การผสานรวมอย่างต่อเนื่อง - การทดสอบ

หนึ่งในคุณสมบัติที่สำคัญของการผสานรวมอย่างต่อเนื่องคือเพื่อให้แน่ใจว่าไฟล์ on-going testingเก็บรหัสทั้งหมดที่สร้างโดยเซิร์ฟเวอร์ CI หลังจากสร้างโดยเซิร์ฟเวอร์ CI แล้วจะต้องมีการตรวจสอบให้แน่ใจว่ามีกรณีทดสอบเพื่อให้ได้รับการทดสอบโค้ดที่ต้องการ เซิร์ฟเวอร์ CI ทุกตัวมีความสามารถในการเรียกใช้กรณีทดสอบหน่วยโดยเป็นส่วนหนึ่งของCI suite. ใน.Netการทดสอบหน่วยเป็นคุณลักษณะที่มีอยู่ในไฟล์ .Net framework และสิ่งเดียวกันนี้สามารถรวมเข้ากับ CI Server ได้เช่นกัน

บทนี้จะดูว่าเราสามารถกำหนดกรณีทดสอบได้อย่างไร .Netจากนั้นให้เซิร์ฟเวอร์ TeamCity ของเราเรียกใช้กรณีทดสอบนี้หลังจากการสร้างเสร็จสมบูรณ์ สำหรับสิ่งนี้อันดับแรกเราต้องแน่ใจว่าเรามีการทดสอบหน่วยที่กำหนดไว้สำหรับโครงการตัวอย่างของเรา

ในการดำเนินการนี้เราต้องปฏิบัติตามขั้นตอนต่อไปนี้ด้วยความระมัดระวังสูงสุด

Step 1- มาเพิ่มคลาสใหม่ในโซลูชันของเราซึ่งจะใช้ในการทดสอบหน่วยของเรา คลาสนี้จะมีตัวแปรชื่อซึ่งจะเก็บสตริง“ Continuous Integration” สตริงนี้จะแสดงบนหน้าเว็บ คลิกขวาที่ Simple Project และเลือกตัวเลือกเมนูAdd → Class.

Step 2 - ตั้งชื่อชั้นเรียนเป็น Tutorial.cs แล้วคลิกปุ่มเพิ่มที่ด้านล่างของหน้าจอ

Step 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";
      }
   }
}

Step 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";
      }
   }
}

Step 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 คุณควรได้รับผลลัพธ์ต่อไปนี้เมื่อการคอมไพล์เสร็จสมบูรณ์

Step 6- ตอนนี้ได้เวลาเพิ่มการทดสอบหน่วยของเราในโครงการแล้ว คลิกขวาที่Solution และเลือกตัวเลือกเมนู Add → New Project.

Step 7 - ไปที่ Test และทางด้านขวามือให้เลือก Unit Test Project. ตั้งชื่อเป็นDemoTest จากนั้นคลิกตกลง

Step 8 - ในไฟล์ Demo Test projectคุณต้องเพิ่มการอ้างอิงไปยังโครงการอย่างง่ายและจำเป็น testing assemblies. คลิกขวาที่โครงการและเลือกตัวเลือกเมนูAdd Reference.

Step 9 - ในหน้าจอถัดไปที่ปรากฏขึ้นให้ไปที่โครงการเลือก Simple Reference แล้วคลิกตกลง

Step 10 - คลิก Add Reference อีกครั้งไปที่แอสเซมบลีและพิมพ์ Webในช่องค้นหา จากนั้นเพิ่มการอ้างอิงของSystem.Web.

Step 11 - ในไฟล์ Unit Test fileเพิ่มรหัสต่อไปนี้ รหัสนี้จะทำให้แน่ใจว่าคลาส 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");
      }
   }
}

Step 12- ตอนนี้เรามาทำการทดสอบใน Visual Studio เพื่อให้แน่ใจว่าใช้งานได้ ใน Visual Studio ให้เลือกตัวเลือกเมนูTest → Run → All Tests.

หลังจากเรียกใช้การทดสอบคุณจะเห็นการทดสอบทำงานได้สำเร็จทางด้านซ้ายมือของ Visual Studio

การเปิดใช้งานการทดสอบอย่างต่อเนื่องภายใน TeamCity - ตอนนี้กรณีการทดสอบทั้งหมดพร้อมใช้งานแล้วก็ถึงเวลารวมสิ่งเหล่านี้เข้ากับเซิร์ฟเวอร์ Team City ของเรา

Step 13- สำหรับสิ่งนี้เราต้องสร้างขั้นตอนการสร้างในการกำหนดค่าโครงการของเรา ไปที่บ้านโครงการของคุณแล้วคลิกแก้ไขการตั้งค่าการกำหนดค่า

step 14 - จากนั้นไปที่ขั้นตอนการสร้าง→ MS Build และคลิกเพิ่มขั้นตอนการสร้างตามที่แสดงในภาพหน้าจอต่อไปนี้

ในหน้าจอถัดไปที่ปรากฏขึ้นให้เพิ่มค่าต่อไปนี้ -

  • เลือกประเภทนักวิ่งเป็น Visual Studio Tests

  • ป้อนชื่อขั้นตอนการทดสอบเพิ่มเติม

  • เลือกประเภท Test Engine เป็น VSTest.

  • เลือกเวอร์ชัน Test Engine เป็น VSTest2013.

  • ในชื่อไฟล์ทดสอบระบุตำแหน่งเป็น DemoTest\bin\Debug\DemoTest.dll - จำไว้ DemoTestคือชื่อโครงการของเราซึ่งมีการทดสอบหน่วยของเรา DemoTest.dll จะถูกสร้างขึ้นโดยขั้นตอนการสร้างครั้งแรกของเรา

  • คลิกบันทึกซึ่งจะพร้อมใช้งานที่ส่วนท้ายของหน้าจอ

ตอนนี้คุณจะมี 2 ขั้นตอนการสร้างสำหรับโครงการของคุณ ขั้นแรกคือขั้นตอนการสร้างซึ่งจะสร้างรหัสแอปพลิเคชันและโครงการทดสอบของคุณ และถัดไปจะถูกใช้เพื่อเรียกใช้กรณีทดสอบของคุณ

Step 15- ตอนนี้ถึงเวลาเช็คอินโค้ดทั้งหมดใน Git แล้วเพื่อให้สามารถเรียกใช้กระบวนการสร้างทั้งหมดได้ ข้อแตกต่างเพียงอย่างเดียวคือเวลานี้คุณต้องเรียกใช้ไฟล์git add และ git commit คำสั่งจาก Demo parent folder ดังที่แสดงในภาพหน้าจอต่อไปนี้

ตอนนี้เมื่อบิลด์ถูกทริกเกอร์คุณจะเห็นผลลัพธ์เริ่มต้นซึ่งจะบอกว่าการทดสอบผ่าน

Step 16 - หากคุณคลิกที่ผลการทดสอบที่ผ่านและไปที่แท็บการทดสอบคุณจะเห็นว่ามีการเรียกใช้งาน UnitTest1 และผ่านแล้ว