1"use strict";(globalThis.webpackChunkserenity_users_guide=globalThis.webpackChunkserenity_users_guide||[]).push([[7808],{5152(e,n,i){i.d(n,{A:()=>r});const r=i.p+"assets/images/replace-serenity-annotations-9d3fd486fe8dc228aea1fb475e32eccd.png"},8453(e,n,i){i.d(n,{R:()=>t,x:()=>d});var r=i(6540);const a={},s=r.createContext(a);function t(e){const n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:t(e.components),r.createElement(s.Provider,{value:n},e.children)}},8868(e,n,i){i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>u,frontMatter:()=>t,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"tutorials/migrating_to_serenity_4","title":"Migraci\xf3n de Serenity BDD 3.x a Serenity BDD 4.x","description":"Introducci\xf3n","source":"@site/i18n/es/docusaurus-plugin-content-docs/current/tutorials/migrating_to_serenity_4.md","sourceDirName":"tutorials","slug":"/tutorials/migrating_to_serenity_4","permalink":"/es/docs/tutorials/migrating_to_serenity_4","draft":false,"unlisted":false,"editUrl":"https://github.com/serenity-bdd/serenity-bdd.github.io/blob/master/docs/tutorials/migrating_to_serenity_4.md","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"sidebar_position":5},"sidebar":"tutorialSidebar","previous":{"title":"Pruebas basadas en datos con Serenity BDD","permalink":"/es/docs/tutorials/data-driven-testing"},"next":{"title":"Integraci\xf3n de CI/CD con Serenity BDD","permalink":"/es/docs/tutorials/cicd-integration"}}');var a=i(4848),s=i(8453);const t={sidebar_position:5},d="Migraci\xf3n de Serenity BDD 3.x a Serenity BDD 4.x",o={},c=[{value:"Introducci\xf3n",id:"introducci\xf3n",level:2},{value:"Paso 1: Asegurar compatibilidad con JDK 17",id:"paso-1-asegurar-compatibilidad-con-jdk-17",level:2},{value:"Paso 2: Actualizar dependencias de Serenity",id:"paso-2-actualizar-dependencias-de-serenity",level:2},{value:"Paso 3: Modificar anotaciones",id:"paso-3-modificar-anotaciones",level:2},{value:"Paso 4: Actualizar referencias de paquetes",id:"paso-4-actualizar-referencias-de-paquetes",level:2},{value:"Paso 5: Probar tus cambios",id:"paso-5-probar-tus-cambios",level:2},{value:"Conclusi\xf3n",id:"conclusi\xf3n",level:2}];function l(e){const n={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"migraci\xf3n-de-serenity-bdd-3x-a-serenity-bdd-4x",children:"Migraci\xf3n de Serenity BDD 3.x a Serenity BDD 4.x"})}),"\n",(0,a.jsx)(n.h2,{id:"introducci\xf3n",children:"Introducci\xf3n"}),"\n",(0,a.jsx)(n.p,{children:"Serenity BDD 4.0.0 es una actualizaci\xf3n significativa que se alinea con las bibliotecas de testing modernas al soportar JDK 17. Esta versi\xf3n mayor incluye cambios en las estructuras de paquetes, reflejando ajustes en la estructura de m\xf3dulos para JDK 17. Si est\xe1s migrando de Serenity 3.x a Serenity 4.x, este tutorial te guiar\xe1 a trav\xe9s de los pasos necesarios para hacer tu proyecto compatible con la \xfaltima versi\xf3n."}),"\n",(0,a.jsx)(n.h2,{id:"paso-1-asegurar-compatibilidad-con-jdk-17",children:"Paso 1: Asegurar compatibilidad con JDK 17"}),"\n",(0,a.jsxs)(n.p,{children:["Aseg\xfarate de que tu proyecto sea compatible con JDK 17, ya que Serenity BDD 4.x lo requiere como versi\xf3n m\xednima. Si est\xe1s usando Maven, actualiza el archivo ",(0,a.jsx)(n.code,{children:"pom.xml"})," de tu proyecto para incluir el ",(0,a.jsx)(n.code,{children:"maven-compiler-plugin"})," configurado para JDK 17. Aqu\xed hay un ejemplo:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-xml",children:"<plugin>\n <groupId>org.apache.maven.plugins</groupId>\n <artifactId>maven-compiler-plugin</artifactId>\n <version>3.8.1</version>\n <configuration>\n <source>11</source>\n <target>11</target>\n </configuration>\n</plugin>\n"})}),"\n",(0,a.jsxs)(n.p,{children:["Si tu proyecto usa Gradle, necesitar\xe1s especificar la versi\xf3n de Java en tu archivo ",(0,a.jsx)(n.code,{children:"build.gradle"})," para asegurar compatibilidad con JDK 17. Aqu\xed hay un ejemplo:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-groovy",children:"plugins {\n id 'java'\n}\n\nsourceCompatibility = '11'\ntargetCompatibility = '11'\n"})}),"\n",(0,a.jsx)(n.h2,{id:"paso-2-actualizar-dependencias-de-serenity",children:"Paso 2: Actualizar dependencias de Serenity"}),"\n",(0,a.jsx)(n.p,{children:"Actualiza las dependencias de Serenity BDD en el archivo de compilaci\xf3n de tu proyecto a la \xfaltima versi\xf3n 4.x, por ejemplo:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-xml",children:" <properties>\n <serenity.version>4.0.0</serenity.version>\n </properties>\n <dependencies>\n <dependency>\n <groupId>net.serenity-bdd</groupId>\n <artifactId>serenity-core</artifactId>\n <version>${serenity.version}</version>\n </dependency>\n <dependency>\n <groupId>net.serenity-bdd</groupId>\n <artifactId>serenity-junit</artifactId>\n <version>${serenity.version}</version>\n </dependency>\n <dependency>\n <groupId>net.serenity-bdd</groupId>\n <artifactId>serenity-screenplay</artifactId>\n <version>${serenity.version}</version>\n </dependency>\n <dependency>\n <groupId>net.serenity-bdd</groupId>\n <artifactId>serenity-screenplay-webdriver</artifactId>\n <version>${serenity.version}</version>\n </dependency>\n <dependency>\n <groupId>net.serenity-bdd</groupId>\n <artifactId>serenity-ensure</artifactId>\n <version>${serenity.version}</version>\n </dependency>\n <dependency>\n <groupId>net.serenity-bdd</groupId>\n <artifactId>serenity-cucumber</artifactId>\n <version>${serenity.version}</version>\n </dependency>\n </dependencies>\n\n"})}),"\n",(0,a.jsx)(n.h2,{id:"paso-3-modificar-anotaciones",children:"Paso 3: Modificar anotaciones"}),"\n",(0,a.jsxs)(n.p,{children:["Debido a las restricciones de m\xf3dulos de Java 9, algunos de los paquetes han cambiado de lugar en la nueva ver
1si\xf3n. Lo m\xe1s importante es que todas las anotaciones principales de Serenity ahora se pueden encontrar en el paquete ",(0,a.jsx)(n.code,{children:"net.serenitybdd.annotations"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["En tu proyecto, reemplaza las anotaciones principales de Serenity, como ",(0,a.jsx)(n.code,{children:"@Step"}),", al nuevo paquete ",(0,a.jsx)(n.code,{children:"net.serenitybdd.annotations"})," desde el antiguo paquete ",(0,a.jsx)(n.code,{children:"net.thucydides.core.annotations"}),". Si tu proyecto es grande, puedes actualizar todas tus anotaciones de una sola vez as\xed:"]}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.img,{src:i(5152).A+"",width:"1334",height:"1254"})}),"\n",(0,a.jsx)(n.h2,{id:"paso-4-actualizar-referencias-de-paquetes",children:"Paso 4: Actualizar referencias de paquetes"}),"\n",(0,a.jsx)(n.p,{children:"Si est\xe1s usando clases internas de Serenity, puede que necesites modificar las referencias de paquetes relevantes en tu c\xf3digo bas\xe1ndote en la siguiente tabla:"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"M\xf3dulo"}),(0,a.jsx)(n.th,{children:"Paquetes antiguos"}),(0,a.jsx)(n.th,{children:"Paquetes nuevos"})]})}),(0,a.jsxs)(n.tbody,{children:[(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"serenity-screenplay-webdriver"}),(0,a.jsx)(n.td,{children:"net.serenity.screenplay.*"}),(0,a.jsx)(n.td,{children:"net.serenity.screenplay.webdriver.*"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{}),(0,a.jsx)(n.td,{children:"net.serenitybdd.screenplay.webtest.actions.*"}),(0,a.jsx)(n.td,{children:"net.serenitybdd.screenplay.webdriver.actions.*"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"serenity-model"}),(0,a.jsx)(n.td,{children:"net.serenitybdd.core.*"}),(0,a.jsx)(n.td,{children:"net.serenitybdd.model.*"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{}),(0,a.jsx)(n.td,{children:"net.thucydides.core.annotations.*"}),(0,a.jsx)(n.td,{children:"net.serenitybdd.annotations.*"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{}),(0,a.jsx)(n.td,{children:"Otros net.thucydides.core.*"}),(0,a.jsx)(n.td,{children:"net.thucydides.model.*"})]})]})]}),"\n",(0,a.jsxs)(n.p,{children:["Por ejemplo, puede que necesites reemplazar ",(0,a.jsx)(n.code,{children:"net.thucydides.core.util.EnvironmentVariables"})," con ",(0,a.jsx)(n.code,{children:"net.thucydides.model.util.EnvironmentVariables"})]}),"\n",(0,a.jsx)(n.h2,{id:"paso-5-probar-tus-cambios",children:"Paso 5: Probar tus cambios"}),"\n",(0,a.jsx)(n.p,{children:"Despu\xe9s de hacer estos cambios, ejecuta tu suite de pruebas para verificar que todo funcione correctamente con la nueva versi\xf3n de Serenity BDD. Presta especial atenci\xf3n a lo siguiente:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.strong,{children:"Jerarqu\xeda de requisitos:"})," Aseg\xfarate de que la jerarqu\xeda de requisitos se muestre correctamente en tus reportes."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.strong,{children:"Ejecuci\xf3n de pruebas:"})," Confirma que todas tus pruebas se ejecuten como se espera, sin pruebas faltantes o fallidas que anteriormente pasaban."]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"conclusi\xf3n",children:"Conclusi\xf3n"}),"\n",(0,a.jsx)(n.p,{children:"Migrar a Serenity BDD 4.x implica actualizar referencias de paquetes para alinearse con la nueva estructura de m\xf3dulos de JDK 17. Sigue los pasos anteriores y consulta la documentaci\xf3n oficial de Serenity BDD para informaci\xf3n adicional o soporte."}),"\n",(0,a.jsx)(n.p,{children:"Recuerda probar exhaustivamente tu proyecto actualizado, enfoc\xe1ndote particularmente en la jerarqu\xeda de requisitos y la ejecuci\xf3n de pruebas, para asegurar que la migraci\xf3n haya sido exitosa."})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.