Integração Contínua - Teste
Um dos principais recursos da Integração Contínua é garantir que o on-going testingcontém todo o código que é construído pelo servidor CI. Depois que uma construção é realizada pelo CI Server, deve-se garantir que os casos de teste estejam em vigor para que o código necessário seja testado. Cada servidor CI tem a capacidade de executar casos de teste de unidade como parte doCI suite. Dentro.Net, o teste de unidade é um recurso que está embutido no .Net framework e a mesma coisa também pode ser incorporada ao CI Server.
Este capítulo verá como podemos definir um caso de teste em .Nete, em seguida, deixe nosso servidor TeamCity executar este caso de teste após a conclusão da compilação. Para isso, primeiro precisamos garantir que temos um teste de unidade definido para nosso projeto de amostra.
Para fazer isso, devemos seguir as etapas seguintes com o máximo cuidado.
Step 1- Vamos adicionar uma nova classe à nossa solução, que será usada em nosso Teste de Unidade. Esta classe terá uma variável de nome, que conterá a string “Integração Contínua”. Esta string será exibida na página da web. Clique com o botão direito no Projeto Simples e escolha a opção de menuAdd → Class.
Step 2 - Dê um nome para a classe como Tutorial.cs e clique no botão Adicionar na parte inferior da tela.
Step 3- Abra o arquivo Tutorial.cs e adicione o código a seguir nele. Este código apenas cria uma string chamadaName, e no Construtor atribui o nome a um valor de string 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 - Vamos fazer a mudança em nosso Demo.aspx.csarquivo para usar esta nova classe. Atualize o código neste arquivo com o código a seguir. Portanto, este código agora criará uma nova instância da classe criada acima.
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 - no nosso demo.aspx arquivo, vamos agora fazer referência ao tp.Name variável, que foi criada no aspx.cs Arquivo.
<%@ 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>
Apenas para garantir que nosso código funcione bem com essas alterações, você pode executar o código no Visual Studio. Você deve obter a seguinte saída quando a compilação for concluída.
Step 6- Agora é hora de adicionar nossos testes de unidade ao projeto. Clique com o botão direito emSolution e escolha a opção do menu Add → New Project.
Step 7 - Navegue para Test e no lado direito, escolha Unit Test Project. Dê um nome comoDemoTest e clique em OK.
Step 8 - no seu Demo Test project, você precisa adicionar uma referência ao projeto Simples e ao necessário testing assemblies. Clique com o botão direito no projeto e escolha a opção de menuAdd Reference.
Step 9 - Na próxima tela que aparecer, vá para Projetos, escolha Simple Reference e clique em OK.
Step 10 - Clique Add Reference novamente, vá para Assemblies e digite Webna caixa de pesquisa. Em seguida, adicione uma referência deSystem.Web.
Step 11 - no Unit Test file, adicione o seguinte código. Este código irá garantir que a classe Tutorial tenha uma variável de nome de string. Também afirmará o fato de que o Nome deve ser igual a um valor de “Integração Contínua”. Este será nosso caso de teste simples.
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- Agora vamos executar nosso teste no Visual Studio para ter certeza de que funciona. No Visual Studio, escolha a opção de menuTest → Run → All Tests.
Depois de executar o teste, você verá o Teste executado com êxito no lado esquerdo do Visual Studio.
Habilitando testes contínuos dentro do TeamCity - Agora que todos os casos de teste estão implementados, é hora de integrá-los em nosso servidor Team City.
Step 13- Para isso, precisamos criar uma etapa de construção em nossa configuração de projeto. Vá para a página inicial do seu projeto e clique em Editar definições de configuração.
step 14 - Em seguida, vá para Etapa de compilação → MS Build e clique em Adicionar etapa de compilação conforme ilustrado na captura de tela a seguir.
Na próxima tela que aparecer, adicione os seguintes valores -
Escolha o tipo de corredor como Testes do Visual Studio.
Insira um nome de etapa de teste opcional.
Escolha o tipo de mecanismo de teste como VSTest.
Escolha a versão do Test Engine como VSTest2013.
No nome dos arquivos de teste, forneça o local como DemoTest\bin\Debug\DemoTest.dll - Lembre-se disso DemoTesté o nome do nosso projeto que contém nossos Testes Unitários. oDemoTest.dll será gerado por nossa primeira etapa de construção.
Clique em Salvar, que ficará disponível no final da tela.
Agora você terá 2 etapas de construção para seu projeto. A primeira é a etapa Build, que criará o código do aplicativo e o projeto de teste. E o próximo será usado para executar seus casos de teste.
Step 15- Agora é hora de fazer o check-in de todo o seu código no Git, para que todo o processo de construção possa ser acionado. A única diferença é que desta vez, você precisa executar ogit add e git commit comando do Demo parent folder como mostrado na imagem a seguir.
Agora, quando o build for acionado, você verá uma saída inicial que dirá que o teste foi aprovado.
Step 16 - Se você clicar no resultado Teste aprovado e ir para a guia Teste, verá agora que o UnitTest1 foi executado e aprovado.