{"id":1812,"date":"2024-03-23T09:47:28","date_gmt":"2024-03-23T08:47:28","guid":{"rendered":"https:\/\/ittester.sk\/sin-categorizar\/pruebas-de-dependencia\/"},"modified":"2024-07-11T09:43:39","modified_gmt":"2024-07-11T07:43:39","slug":"pruebas-de-dependencia","status":"publish","type":"post","link":"https:\/\/ittester.sk\/es\/sin-categorizar\/tutorial-testng\/pruebas-de-dependencia\/","title":{"rendered":"Dependencia en TestNG"},"content":{"rendered":"\n<p>La regla es que cada m\u00e9todo de ensayo debe ser independiente de los dem\u00e1s, es decir j. el resultado o rendimiento de un m\u00e9todo de ensayo no debe afectar a los dem\u00e1s m\u00e9todos de ensayo. Sin embargo, a veces en automatizaci\u00f3n podemos necesitar que un m\u00e9todo de prueba dependa de otros.<\/p>\n\n<p>Puede que queramos preservar las dependencias entre m\u00e9todos de prueba para ahorrar tiempo, o para escenarios en los que la llamada a ejecutar una prueba concreta dependa del resultado de alguna otra prueba.<\/p>\n\n<p>TestNG es un marco de pruebas que nos proporciona dos atributos &#8211; dependsOnMethod y dependsOnGroup dentro de la anotaci\u00f3n @Test para conseguir dependencias entre pruebas. Examinemos ahora estos atributos.<\/p>\n\n<h2 class=\"wp-block-heading\"><strong>\u00cdndice<\/strong><\/h2>\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-dependsonmethod\">dependsOnMethod<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-uryvok-kodu\">\u00daryvok k\u00f3du<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-vystup\">V\u00fdstup<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-dependsongroup\">dependsOnGroup<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-uryvok-kodu\">\u00daryvok k\u00f3du<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-vysledok-testng\">V\u00fdsledok TestNG<\/a><\/li><\/ul><\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-dependsonmethod\">DependeDeM\u00e9todo<\/h2>\n\n<p>Utilizando el atributo \u00abdependsOnMethod\u00bb dentro de la anotaci\u00f3n @Test, podemos especificar el nombre del m\u00e9todo de prueba padre del que debe depender la prueba.<\/p>\n\n<p>Algunos puntos que debes recordar sobre dependsOnMethod:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Al ejecutar una clase de prueba completa o un conjunto de pruebas, el m\u00e9todo parentTest se ejecuta antes que el m\u00e9todo dependentTest.<\/li>\n\n\n\n<li>Si ejecutamos dependienteTest por s\u00ed mismo, el m\u00e9todo padreTest tambi\u00e9n se ejecuta antes que dependienteTest.<\/li>\n\n\n\n<li>Si el m\u00e9todo PruebaPadre falla, el m\u00e9todo PruebaDependiente no se ejecutar\u00e1 y se marcar\u00e1 como omitido.<\/li>\n<\/ul>\n\n<p><strong>@Prueba(dependeDeM\u00e9todos={\u00abpruebaPadre\u00bb})<\/strong><\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-uryvok-kodu\">Fragmento de c\u00f3digo<\/h2>\n\n<p>En el siguiente fragmento de c\u00f3digo, tenemos dos m\u00e9todos de prueba: parentTest() y dependentTest(). El m\u00e9todo dependentTest depende del m\u00e9todo parentTest mediante el atributo dependsOnMethods.<\/p>\n\n<pre class=\"wp-block-code\"><code>public class TutorialExample {\n\n\u00a0\u00a0\u00a0\u00a0@Test\n\n\u00a0\u00a0\u00a0\u00a0public void parentTest() {\u00a0\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(\"Running parent test.\");\n\n\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0@Test(dependsOnMethods={\"parentTest\"})\u00a0\n\n\u00a0\u00a0\u00a0\u00a0public void dependentTest() {\u00a0\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(\"Running dependent test.\");\n\n\u00a0\u00a0\u00a0\u00a0}\u00a0\n\n}<\/code><\/pre>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-vystup\">Obtenido de<\/h2>\n\n<p>Cuando se ejecuta el propio m\u00e9todo dependentTest(), el m\u00e9todo parentTest() tambi\u00e9n se ejecuta antes que el m\u00e9todo dependentTest(). Esto se hace para mantener la dependencia.<\/p>\n\n<pre class=\"wp-block-code\"><code>Running parent test.\n\nRunning dependent test.\n\nPASSED: parentTest\n\nPASSED: dependentTest\n\n===============================================\n\n\u00a0\u00a0\u00a0\u00a0Default test\n\n\u00a0\u00a0\u00a0\u00a0Tests run: 2, Failures: 0, Skips: 0\n\n===============================================<\/code><\/pre>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-dependsongroup\">DependeDelGrupo<\/h2>\n\n<p>El atributo dependsOnGroup se utiliza para hacer que un m\u00e9todo de prueba dependa de un conjunto de pruebas pertenecientes a un grupo concreto. Esto garantiza que la prueba dependiente se ejecute despu\u00e9s de que se hayan ejecutado todas las pruebas del grupo padre.<\/p>\n\n<p>Algunos puntos que debes recordar sobre DependsOnMethod:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Cuando se ejecuta una clase de prueba o un conjunto de pruebas completo, las pruebas pertenecientes al grupo padre se ejecutan antes que las pruebas dependientes.<\/li>\n\n\n\n<li>Si ejecutamos la propia prueba dependiente, todas las pruebas pertenecientes al grupo padre se ejecutar\u00e1n antes que la prueba dependiente.<\/li>\n\n\n\n<li>Si alguna o todas las pruebas del m\u00e9todo del grupo padre fallan, el m\u00e9todo de la prueba dependiente no se ejecutar\u00e1 y se marcar\u00e1 como omitido.<\/li>\n<\/ul>\n\n<p><strong>@Prueba(dependeDeGrupos = \u00abgrupoA\u00bb)<\/strong><\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-uryvok-kodu\">Fragmento de c\u00f3digo<\/h2>\n\n<p>En el siguiente fragmento de c\u00f3digo, tenemos dos m\u00e9todos de prueba &#8211; testMethod1ForGroupA() y testMethod2ForGroupA(), que pertenecen al grupo groupA. Entonces tenemos un m\u00e9todo dependentTest &#8211; dependentTestOnGroupA, que depende de los m\u00e9todos del grupoA mediante el atributo dependsOnGroups. En aras de la demostraci\u00f3n, fallamos deliberadamente el m\u00e9todo testMethod2ParaGrupoA.<\/p>\n\n<pre class=\"wp-block-code\"><code>public class TutorialExample {\n\n\u00a0\u00a0\u00a0\u00a0@Test(groups = \"groupA\")\n\n\u00a0\u00a0\u00a0\u00a0public void testMethod1ForGroupA() {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(\"Running test method1 of groupA\");\n\n\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0@Test(groups = \"groupA\")\n\n\u00a0\u00a0\u00a0\u00a0public void testMethod2ForGroupA() {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(\"Running test method2 of groupA\");\n\n\u00a0\u00a0\u00a0\u00a0\u00a0Assert.fail();\n\n\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0@Test(dependsOnGroups = \"groupA\")\n\n\u00a0\u00a0\u00a0\u00a0public void dependentTestOnGroupA() {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(\"Running the dependent test\");\n\n\u00a0\u00a0\u00a0\u00a0}\n\n}<\/code><\/pre>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-vysledok-testng\">Resultado de TestNG<\/h2>\n\n<p>Cuando se ejecuta la propia funci\u00f3n dependentTestOnGroupA() o se ejecuta toda la clase de prueba, podemos observar la siguiente salida.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"270\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/03\/vysledok-testng-800-270.webp\" alt=\"\" class=\"wp-image-1178\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/03\/vysledok-testng-800-270.webp 800w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/03\/vysledok-testng-800-270-300x101.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/03\/vysledok-testng-800-270-768x259.webp 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/div>\n<p>Aqu\u00ed podemos observar que TestNG intenta ejecutar las 3 pruebas y, debido a la dependencia, ejecuta primero testMethod1FParaGrupoA y testMethod2ParaGrupoA. Como ha fallado la pruebaM\u00e9todo2ParaGrupoA, prueba dependiente, t. j. dependentTestOnGroupA, no se ejecuta y se marca como omitida.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TestNG proporciona dos atributos (dependsOnMethod y dependsOnGroup) para conseguir dependencias entre pruebas.<\/p>\n","protected":false},"author":8,"featured_media":1814,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[36],"tags":[],"class_list":["post-1812","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial-testng"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO Pro 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"TestNG proporciona dos atributos (dependsOnMethod y dependsOnGroup) para conseguir dependencias entre pruebas.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Zoltan\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/ittester.sk\/es\/sin-categorizar\/tutorial-testng\/pruebas-de-dependencia\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO Pro (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"IT tester - Z\u00e1kladn\u00e9 inform\u00e1cie o testovan\u00ed softv\u00e9ru\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Dependencia en TestNG - IT tester\" \/>\n\t\t<meta property=\"og:description\" content=\"TestNG proporciona dos atributos (dependsOnMethod y dependsOnGroup) para conseguir dependencias entre pruebas.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/ittester.sk\/es\/sin-categorizar\/tutorial-testng\/pruebas-de-dependencia\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-03-23T08:47:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-07-11T07:43:39+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Dependencia en TestNG - IT tester\" \/>\n\t\t<meta name=\"twitter:description\" content=\"TestNG proporciona dos atributos (dependsOnMethod y dependsOnGroup) para conseguir dependencias entre pruebas.\" \/>\n\t\t<script type=\"text\/javascript\">\n\t\t\t(function(c,l,a,r,i,t,y){\n\t\t\tc[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};t=l.createElement(r);t.async=1;\n\t\t\tt.src=\"https:\/\/www.clarity.ms\/tag\/\"+i+\"?ref=aioseo\";y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);\n\t\t})(window, document, \"clarity\", \"script\", \"nizijct9c2\");\n\t\t<\/script>\n\t\t<!-- All in One SEO Pro -->\r\n\t\t<title>Dependencia en TestNG - IT tester<\/title>\n\n","aioseo_head_json":{"title":"Dependencia en TestNG - IT tester","description":"TestNG proporciona dos atributos (dependsOnMethod y dependsOnGroup) para conseguir dependencias entre pruebas.","canonical_url":"https:\/\/ittester.sk\/es\/sin-categorizar\/tutorial-testng\/pruebas-de-dependencia\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"IT tester - Z\u00e1kladn\u00e9 inform\u00e1cie o testovan\u00ed softv\u00e9ru","og:type":"article","og:title":"Dependencia en TestNG - IT tester","og:description":"TestNG proporciona dos atributos (dependsOnMethod y dependsOnGroup) para conseguir dependencias entre pruebas.","og:url":"https:\/\/ittester.sk\/es\/sin-categorizar\/tutorial-testng\/pruebas-de-dependencia\/","article:published_time":"2024-03-23T08:47:28+00:00","article:modified_time":"2024-07-11T07:43:39+00:00","twitter:card":"summary_large_image","twitter:title":"Dependencia en TestNG - IT tester","twitter:description":"TestNG proporciona dos atributos (dependsOnMethod y dependsOnGroup) para conseguir dependencias entre pruebas."},"aioseo_meta_data":{"post_id":"1812","title":null,"description":"TestNG proporciona dos atributos (dependsOnMethod y dependsOnGroup) para conseguir dependencias entre pruebas.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"none","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"seo_analyzer_scan_date":"2026-05-18 09:25:15","breadcrumb_settings":null,"limit_modified_date":false,"open_ai":"{\"title\":{\"suggestions\":[],\"usage\":0},\"description\":{\"suggestions\":[],\"usage\":0}}","ai":null,"created":"2024-06-25 13:57:02","updated":"2026-05-18 09:25:15"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/ittester.sk\/es\/\" title=\"Home\">Home<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/ittester.sk\/es\/sin-categorizar\/\" title=\"Sin categorizar\">Sin categorizar<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/ittester.sk\/es\/sin-categorizar\/tutorial-testng\/\" title=\"Tutorial TestNG\">Tutorial TestNG<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\tDependencia en TestNG\n<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/ittester.sk\/es\/"},{"label":"Sin categorizar","link":"https:\/\/ittester.sk\/es\/sin-categorizar\/"},{"label":"Tutorial TestNG","link":"https:\/\/ittester.sk\/es\/sin-categorizar\/tutorial-testng\/"},{"label":"Dependencia en TestNG","link":"https:\/\/ittester.sk\/es\/sin-categorizar\/tutorial-testng\/pruebas-de-dependencia\/"}],"_links":{"self":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/1812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/comments?post=1812"}],"version-history":[{"count":2,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/1812\/revisions"}],"predecessor-version":[{"id":2247,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/1812\/revisions\/2247"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/media\/1814"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/media?parent=1812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/categories?post=1812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/tags?post=1812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}