es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

TestCafe: Cómo agregar múltiples filtros en el archivo de configuración testcaferc.js

Estoy tratando de filtrar ciertos nombres de prueba y establecer el metadato de la prueba con el alcance=sanidad. Esto es lo que actualmente tengo configurado (basado en https://stackoverflow.com/questions/70186825/testcafe-how-to-have-multiple-regex-for-testgrep-in-testcaferc-file/70212396), que esperaría que funcionara, pero parece que no lo hace.

filtro: ((nombrePrueba, metadatoPrueba) => 
    // Ubicado en editor_page_tests.js
    !nombrePrueba.includes('user_is_able_to_add_a_section_column_row_and_element_to_editor') &&
    !nombrePrueba.includes('pop_up_element_displays_during_page_preview') &&
    !nombrePrueba.includes('clicking_button_shows_hides_elements') &&
    !nombrePrueba.includes('user_is_able_to_save_when_adding_a_video') &&
    !nombrePrueba.includes('user_is_able_to_save_when_leaving_video_embed_blank') &&

    // Ubicado en blog_page_tests.js
    !nombrePrueba.includes('user_can_create_a_blog') &&

    // Ubicado en courses_page_tests.js
    !nombrePrueba.includes('user_can_preview_existing_course') &&

    // Ubicado en url_redirects_page_tests.js
    !nombrePrueba.includes('user_is_able_to_edit_url_redirect') &&

    // Ubicado en funnels_page_tests.js
    !nombrePrueba.includes('user_can_navigate_through_funnel') &&

    metadatoPrueba.scope === 'sanidad'
    )

Puedo usar testGrep y Regex para hacer que funcione, pero definitivamente no es la forma más organizada de hacer las cosas.

¿Alguna idea?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que tu función actual de filter está comprobando ciertos nombres de pruebas para excluir y también asegurando que el testMeta tenga un alcance de “sanity”. Sin embargo, mencionaste que estás buscando una manera más organizada de lograr esto.

    Una opción que podrías considerar es crear una propiedad separada de testMeta para las pruebas que deseas excluir, y luego modificar tu función de filter para excluir las pruebas que tengan esa propiedad establecida. De esta manera, podrías modificar fácilmente la lista de pruebas excluidas agregando o eliminando elementos de la propiedad testMeta.

    Aquí tienes un ejemplo:

    // En tu código de prueba
    test.meta({ excludeFromFilter: true })
    
    // En tu archivo testcaferc.json
    filter: ((testName, testMeta) =>
      testMeta.scope === 'sanity' &&
      !testMeta.excludeFromFilter
    )
    

    Con esta configuración, cualquier prueba que desees excluir del filtro simplemente debe agregar la propiedad meta excludeFromFilter y será excluida automáticamente. La función de filtro solo comprueba las pruebas con un scope de “sanity”.

    ¡Espero que esto te ayude! Avísame si tienes alguna otra pregunta.

Comments are closed.