Robotframework pour la boucle continuer avec le prochain test

Aug 23 2020

J'ai le code ci-dessous:

*** Settings ***
Library     OperatingSystem
Library     Process
Library     String
Test Template    My Run Test
*** Variables ***
@{MyList}=   item  items

*** Test Cases *** 
#name                        type                   profile          file                 test
[XXXXX_1]                   General                test.out         Profile             mode.out 
          [Tags]    TEST-XXXXX   


*** Keywords *** 
My Run Test
    [Documentation]    Run the suite
    [Arguments]       ${type} ${profile}     ${file} ${test}
    : FOR  ${data} IN @{MyList} \ When data is ready \ And tool is ran \ And get was success \ And test suite config is updated \ And testing tool is again run \ Then publish test status data is ready Log to Console "Data is ready" tool is ran Log to Console "tool is ran" Run Keyword And Return Stop Test "This is fun" get was success Log to Console "get was success" test suite config is updated Log to Console "test suite config is updated" testing tool is again run Log to Console "testing tool is again run" publish test status Log to Console "publish test status" Stop Test [Arguments] ${msg}     
    Log To Console    ${msg} Fail ${msg}

Selon lui, j'exécute un ensemble de mots-clés pour tous les éléments d'une liste en utilisant la boucle for. Maintenant, j'ai une situation où, pour un élément de la liste, une évaluation a échoué et je dois marquer ce test comme un échec, mais je souhaite que la suite de tests continue avec les éléments suivants de la liste.

Supposons donc qu'il y ait 3 éléments dans la liste et que le cas de test échoue pendant 2 secondes dans la liste, puis le code doit revenir à la boucle for principale [ne pas continuer avec un autre mot-clé pour le 2ème élément] et démarrer le cas de test pour le 3ème élément.

Ce que j'observe, c'est que l'utilisation du mot-clé Fail et d'autres arrête toute la suite de tests. Existe-t-il un moyen d'y parvenir?

Réponses

1 BenceKaulics Aug 23 2020 at 18:43

Si vous extrayez la boucle for du modèle de test dans le scénario de test et que vous utilisez des modèles avec des boucles for , vous pouvez rendre les itérations indépendantes les unes des autres.

Par exemple avec les modifications suivantes :

*** Test Cases *** 
[XXXXX_1]
    FOR  ${data} IN @{MyList} # list item type profile file test ${data}    General    test.out    Profile    mode.out
    END


*** Keywords *** 
My Run Test
    [Documentation]    Run the suite
    [Arguments]       ${data} ${type}     ${profile} ${file}    ${test}
    When data is ready
    And tool is ran
    And get was success 
    And test suite config is updated 
    And testing tool is again run 
    Then publish test status

Ce serait la sortie: