Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make multi-lines test setup or teardown in RobotFramework without creating new keyword?

I need to call two teardown keywords in test case but must not create new keyword for that. I am interesting if there is a such syntax for keywords as for documentation or loops for example:

[Documentation]  line1
...              line2
...              line3
like image 411
Kirill Avatar asked Mar 27 '14 15:03

Kirill


2 Answers

Use the "Run Keywords" keyword.

From doc "This keyword is mainly useful in setups and teardowns when they need to take care of multiple actions and creating a new higher level user keyword would be an overkill"

Would look like that:

Test Case
  [Teardown]  Run Keywords  Teardown 1  Teardown 2

or also

Test Case
  [Teardown]  Run Keywords  Teardown 1  
  ...                       Teardown 2 

and with arguments

Test Case
  [Teardown]  Run Keywords  Teardown 1  arg1  arg2
  ...         AND           Teardown 2  arg1  
like image 124
Laurent Bristiel Avatar answered Oct 04 '22 15:10

Laurent Bristiel


For executing multiple keywords in Test Teardown method use the following trick:

Firstly, define a new keyword containing the set of keywords you want to execute.

E.g. here Failed Case Handle is a new definition of the other two keywords take screenshot and close application. Consider this is to take a screenshot and then close the running application.

*** Keywords ***
Failed Case Handle
    take screenshot
    close application

Basically, when you call the Failed Case Handle keyword, take screenshot and close application will be executed respectively.

Then, in the ***Settings*** section define the Test Teardown procedure by the following example.

*** Settings ***
Test Teardown  run keyword if test failed  Failed Case Handle

or,

*** Settings ***
Test Teardown  run keyword  Failed Case Handle

So, in the first case Failed Case Handle keyword will be called if any test case fails. On the other-hand in the second case Failed Case Handle keyword will be called after each test cases.

like image 21
Zubair Avatar answered Oct 04 '22 15:10

Zubair