Integración continua: pruebas
Una de las características clave de la integración continua es garantizar que el on-going testingcontiene todo el código que genera el servidor CI. Después de que el servidor CI lleva a cabo una compilación, debe asegurarse de que los casos de prueba estén en su lugar para que se pruebe el código requerido. Cada servidor de CI tiene la capacidad de ejecutar casos de prueba unitarios como parte delCI suite. En.Net, la prueba unitaria es una característica que está incorporada en el .Net framework y lo mismo se puede incorporar también al servidor CI.
Este capítulo verá cómo podemos definir un caso de prueba en .Nety luego deje que nuestro servidor TeamCity ejecute este caso de prueba después de que se complete la compilación. Para ello, primero debemos asegurarnos de tener una prueba unitaria definida para nuestro proyecto de muestra.
Para hacer esto, debemos seguir los pasos siguientes con sumo cuidado.
Step 1- Agreguemos una nueva clase a nuestra solución, que se utilizará en nuestra prueba unitaria. Esta clase tendrá una variable de nombre, que contendrá la cadena "Integración continua". Esta cadena se mostrará en la página web. Haga clic derecho en el Proyecto simple y elija la opción de menúAdd → Class.
Step 2 - Dar un nombre para la clase como Tutorial.cs y haga clic en el botón Agregar en la parte inferior de la pantalla.
Step 3- Abra el archivo Tutorial.cs y agregue el siguiente código en él. Este código simplemente crea una cadena llamadaName, y en el Constructor asigne el nombre a un valor de cadena como 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 - Hagamos el cambio a nuestro Demo.aspx.csarchivo para usar esta nueva clase. Actualice el código de este archivo con el siguiente código. Entonces, este código ahora creará una nueva instancia de la clase creada anteriormente.
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 - En nuestro demo.aspx archivo, ahora hagamos referencia al tp.Name variable, que fue creada en la aspx.cs archivo.
<%@ 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>
Solo para asegurarse de que nuestro código funcione bien con estos cambios, puede ejecutar el código en Visual Studio. Debería obtener el siguiente resultado una vez que se complete la compilación.
Step 6- Ahora es el momento de agregar nuestras pruebas unitarias al proyecto. Haga clic derecho enSolution y elige la opción de menú Add → New Project.
Step 7 - Navegar a Test y en el lado derecho, elija Unit Test Project. Dar un nombre comoDemoTest y luego haga clic en Aceptar.
Step 8 - En tu Demo Test project, debe agregar una referencia al proyecto Simple y a los testing assemblies. Haga clic derecho en el proyecto y elija la opción de menúAdd Reference.
Step 9 - En la siguiente pantalla que aparece, vaya a Proyectos, elija Simple Reference y haga clic en Aceptar.
Step 10 - Click Add Reference nuevamente, vaya a Ensamblajes y escriba Weben el cuadro de búsqueda. Luego agregue una referencia deSystem.Web.
Step 11 - En el Unit Test file, agregue el siguiente código. Este código asegurará que la clase Tutorial tenga una variable de nombre de cadena. También afirmará el hecho de que el Nombre debe ser igual a un valor de “Integración continua”. Este será nuestro sencillo caso de prueba.
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- Ahora ejecutemos nuestra prueba en Visual Studio para asegurarnos de que funciona. En Visual Studio, elija la opción de menúTest → Run → All Tests.
Después de ejecutar la prueba, verá que la prueba se ejecuta correctamente en el lado izquierdo de Visual Studio.
Habilitación de pruebas continuas dentro de TeamCity: ahora que todos los casos de prueba están en su lugar, es hora de integrarlos en nuestro servidor de Team City.
Step 13- Para esto, necesitamos crear un paso de compilación en la configuración de nuestro Proyecto. Vaya a la página de inicio de su proyecto y haga clic en Editar ajustes de configuración.
step 14 - Luego vaya a Paso de compilación → Compilación de MS y haga clic en Agregar paso de compilación como se muestra en la siguiente captura de pantalla.
En la siguiente pantalla que aparece, agregue los siguientes valores:
Elija el tipo de corredor como Pruebas de Visual Studio.
Ingrese un nombre de paso de prueba opcional.
Elija el tipo de motor de prueba como VSTest.
Elija la versión de Test Engine como VSTest2013.
En el nombre de los archivos de prueba, proporcione la ubicación como DemoTest\bin\Debug\DemoTest.dll - Recuerda eso DemoTestes el nombre de nuestro proyecto que contiene nuestras pruebas unitarias. losDemoTest.dll será generado por nuestro primer paso de construcción.
Haga clic en Guardar, que estará disponible al final de la pantalla.
Ahora tendrá 2 pasos de construcción para su proyecto. El primero es el paso Construir, que construirá el código de su aplicación y su proyecto de prueba. Y el siguiente se utilizará para ejecutar sus casos de prueba.
Step 15- Ahora es el momento de registrar todo su código en Git, para que se pueda activar todo el proceso de compilación. La única diferencia es que esta vez, debe ejecutar elgit add y git commit comando desde el Demo parent folder como se muestra en la siguiente captura de pantalla.
Ahora, cuando se activa la compilación, verá una salida inicial que dirá que la prueba pasó.
Step 16 - Si hace clic en el resultado de Prueba aprobada y va a la pestaña Prueba, ahora verá que UnitTest1 se ejecutó y que se aprobó.