Integrazione continua - Test
Una delle caratteristiche chiave dell'integrazione continua è garantire che il on-going testingcontiene tutto il codice che viene costruito dal server CI. Dopo che una build è stata eseguita dal server CI, è necessario assicurarsi che i casi di test siano in atto per ottenere il codice richiesto testato. Ogni server CI ha la capacità di eseguire casi di unit test come parte diCI suite. Nel.Net, l'unità di test è una funzionalità incorporata in .Net framework e la stessa cosa può essere incorporata anche nel CI Server.
Questo capitolo vedrà come definire un test case in .Nete poi lascia che il nostro server TeamCity esegua questo test case dopo che la build è stata completata. Per questo, dobbiamo prima assicurarci di avere uno unit test definito per il nostro progetto di esempio.
Per fare ciò, dobbiamo seguire i passaggi successivi con la massima attenzione.
Step 1- Aggiungiamo una nuova classe alla nostra soluzione, che verrà utilizzata nel nostro Unit Test. Questa classe avrà una variabile di nome, che conterrà la stringa "Integrazione continua". Questa stringa verrà visualizzata nella pagina web. Fare clic con il tasto destro del mouse sul progetto semplice e scegliere l'opzione di menuAdd → Class.
Step 2 - Dai un nome alla classe come Tutorial.cs e fare clic sul pulsante Aggiungi nella parte inferiore dello schermo.
Step 3- Apri il file Tutorial.cs e aggiungi il codice seguente. Questo codice crea solo una stringa chiamataNamee nel Costruttore assegnare il nome a un valore stringa come 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 - Facciamo la modifica al nostro Demo.aspx.csfile per utilizzare questa nuova classe. Aggiorna il codice in questo file con il codice seguente. Quindi questo codice ora creerà una nuova istanza della classe creata sopra.
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 - Nel nostro demo.aspx file, ora facciamo riferimento al file tp.Name variabile, che è stata creata in aspx.cs file.
<%@ 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 per assicurarti che il nostro codice funzioni correttamente con queste modifiche, puoi eseguire il codice in Visual Studio. Una volta completata la compilazione, dovresti ottenere il seguente output.
Step 6- Ora è il momento di aggiungere i nostri test unitari al progetto. Fare clic con il tasto destro suSolution e scegli l'opzione di menu Add → New Project.
Step 7 - Vai a Test e sul lato destro, scegli Unit Test Project. Dai un nome comeDemoTest e quindi fare clic su OK.
Step 8 - Nel tuo Demo Test project, è necessario aggiungere un riferimento al progetto Simple e al necessario testing assemblies. Fare clic con il tasto destro sul progetto e scegliere l'opzione di menuAdd Reference.
Step 9 - Nella schermata successiva che viene visualizzata, vai su Progetti, scegli Simple Reference e fare clic su OK.
Step 10 - Fare clic su Add Reference di nuovo, vai su Assiemi e digita Webnella casella di ricerca. Quindi aggiungi un riferimento diSystem.Web.
Step 11 - Nel Unit Test file, aggiungi il codice seguente. Questo codice garantirà che la classe Tutorial abbia una variabile di nome stringa. Affermerà anche il fatto che il nome dovrebbe essere uguale a un valore di "integrazione continua". Questo sarà il nostro semplice test case.
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- Ora eseguiamo il nostro test in Visual Studio per assicurarci che funzioni. In Visual Studio, scegli l'opzione di menuTest → Run → All Tests.
Dopo aver eseguito il test, vedrai il test eseguito correttamente sul lato sinistro di Visual Studio.
Abilitazione del test continuo all'interno di TeamCity - Ora che tutti i casi di test sono a posto, è il momento di integrarli nel nostro server Team City.
Step 13- Per questo, dobbiamo creare una fase di compilazione nella nostra configurazione del progetto. Vai alla home del tuo progetto e fai clic su Modifica impostazioni di configurazione.
step 14 - Quindi vai a Build Step → MS Build e fai clic su Add build step come illustrato nello screenshot seguente.
Nella schermata successiva che viene visualizzata, aggiungi i seguenti valori:
Scegli il tipo di corridore come Test di Visual Studio.
Immettere un nome facoltativo per la fase di prova.
Scegli il tipo di motore di prova come VSTest.
Scegli la versione Test Engine come VSTest2013.
Nel nome dei file di prova, fornire il percorso come DemoTest\bin\Debug\DemoTest.dll - Ricordati che DemoTestè il nome del nostro progetto che contiene i nostri test unitari. IlDemoTest.dll verrà generato dal nostro primo passaggio di compilazione.
Fare clic su Salva che sarà disponibile alla fine dello schermo.
Ora avrai 2 passaggi di costruzione per il tuo progetto. Il primo è il passaggio Build che costruirà il codice dell'applicazione e il progetto di test. E il prossimo verrà utilizzato per eseguire i test case.
Step 15- Ora è il momento di archiviare tutto il codice in Git, in modo che l'intero processo di compilazione possa essere attivato. L'unica differenza è che questa volta devi eseguire il filegit add e git commit comando dal Demo parent folder come mostrato nello screenshot seguente.
Ora, quando la build viene attivata, vedrai un output iniziale che dirà che il test è stato superato.
Step 16 - Se fai clic sul risultato Test superato e vai alla scheda Test, ora vedrai che UnitTest1 è stato eseguito e che è stato superato.