การผสานรวมอย่างต่อเนื่อง - การทดสอบ
หนึ่งในคุณสมบัติที่สำคัญของการผสานรวมอย่างต่อเนื่องคือเพื่อให้แน่ใจว่าไฟล์ 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 และผ่านแล้ว