<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Estefanía Fdez</title>
    <description>The latest articles on DEV Community by Estefanía Fdez (@estefafdez).</description>
    <link>https://dev.to/estefafdez</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4336%2Ffd219cb9-e8c5-4fa3-87fa-23ddcab1911c.png</url>
      <title>DEV Community: Estefanía Fdez</title>
      <link>https://dev.to/estefafdez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/estefafdez"/>
    <language>en</language>
    <item>
      <title>Cómo ejecutar tus tests de Cypress en Microsoft Edge dentro de un contenedor de Linux.</title>
      <dc:creator>Estefanía Fdez</dc:creator>
      <pubDate>Wed, 11 Nov 2020 12:14:15 +0000</pubDate>
      <link>https://dev.to/estefafdez/como-ejecutar-tus-tests-de-cypress-en-microsoft-edge-dentro-de-un-contenedor-de-linux-pkd</link>
      <guid>https://dev.to/estefafdez/como-ejecutar-tus-tests-de-cypress-en-microsoft-edge-dentro-de-un-contenedor-de-linux-pkd</guid>
      <description>&lt;p&gt;¡Hola a todos y bienvenidos a mi primer post en DEV.to!.&lt;/p&gt;

&lt;p&gt;En este post os voy a contar una de mis últimas metas conseguidas: ejecutar un proyecto de Cypress en Microsoft Edge en un contenedor de Linux.&lt;/p&gt;

&lt;p&gt;Si, habéis leido bien, Microsoft Edge en Linux.&lt;/p&gt;

&lt;p&gt;Desde hace unos días podemos descargar desde la web oficial (&lt;a href="https://www.microsoftedgeinsider.com/es-es/download/"&gt;https://www.microsoftedgeinsider.com/es-es/download/&lt;/a&gt;) las versiones también para las diferentes distribuciones de Linux, aunque a nosotros nos interesa sólo el hacerlo mediante consola y no mediante descarga directa de la web ya que lo usaremos dentro de un contenedor.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué problema queremos resolver aquí?
&lt;/h2&gt;

&lt;p&gt;Tenemos un proyecto de test E2E en Cypress que ya se ejecutan dentro de un contenedor de Linux en los siguientes navegadores soportados por Cypress y Docker: Chrome, Firefox y Electron.&lt;/p&gt;

&lt;p&gt;Como Cypress también soporta Edge y queremos mejorar nuestra estrategia de cross-browser testing, queremos añadir Edge a nuestro stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué necesitamos?
&lt;/h2&gt;

&lt;p&gt;Dentro del proyecto de Cypress: añadir en el package.json el poder soportar edge al lanzarlo con open o con run.&lt;/p&gt;

&lt;p&gt;En nuestro Dockerfile: añadir las dependencias para poder descargar Edge, la instalación de Edge y el enlace simbólico para indicarle a Cypress dónde se encuentra Edge (Por ahora hay que indicarlo, más info aquí: &lt;a href="https://github.com/cypress-io/cypress/issues/8930"&gt;https://github.com/cypress-io/cypress/issues/8930&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Los cambios que he realizado son:&lt;/p&gt;

&lt;p&gt;package.json:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
  ...
  "test:edge": "cypress run --browser edge --headless"
  ...
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dockerfile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; # Cogemos la imagen de base con Cypress ya instalado. 
FROM cypress/base:14.10.1

USER root

# Vemos la versión de Node que tenemos instalada. 
RUN node --version

# Añadimos las librerias para descargar Edge
RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor &amp;gt; microsoft.gpg
RUN install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
RUN sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" &amp;gt; /etc/apt/sources.list.d/microsoft-edge-dev.list'
RUN rm microsoft.gpg

# Instalamos Edge
RUN apt-get update
RUN apt-get install -y microsoft-edge-dev

# Conocer la versión de Edge que tenemos: 
RUN microsoft-edge-dev --version

# Añadimos un link simbólico para indicar a Cypress donde está localizado
RUN ln -s /usr/bin/microsoft-edge /usr/bin/edge
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Una vez tenemos esto configurado, en nuestro pipeline/script para lanzar Cypress, ejecutamos el comando que hemos definido en el package.json y podremos ejecutar nuestros tests de Cypress en Microsoft Edge. En mi caso sería el siguiente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run test:edge
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fijaros que cuando comienza la ejecución, en los navegadores que aparecen en Cypress nos aparece la versión correcta de Edge (la misma que hemos mostrado en los logs del Dockerfile):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eb00and7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nb07xyceotypcnokkaig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eb00and7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nb07xyceotypcnokkaig.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Y que, al comenzar la ejecución de las specs también nos aparece la versión correcta:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x2j0cP_M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/muxyqd9ur5pu073qm700.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x2j0cP_M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/muxyqd9ur5pu073qm700.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Y con esto tenemos los test de Cypress ejecutados también en Edge.&lt;/p&gt;

&lt;p&gt;Si tenéis cualquier duda o problema en el proceso, no dudéis en preguntar.&lt;/p&gt;

</description>
      <category>cypress</category>
      <category>linux</category>
      <category>docker</category>
      <category>qa</category>
    </item>
  </channel>
</rss>
