I have a set of test data that is categorized by test case, and I would like to have a test setup keyword that loads the data for each test case. Something like this would work:
*** Keywords ***
Load Test Data
[Arguments] ${test case name}
${data}= Get File ${test case name}.txt
Set Test Variable ${data} ${data}
*** Testcases ***
First Test
Load Test Data First Test
Log ${data}
Second Test
Load Test Data Second Test
Log ${data}
However, it would be nice not to have to include the "Load Test Data" keyword at the beginning of each test case. Is there a keyword that can get the name of the test case, so I can call it inside of "Load Test Case" and make it a test setup keyword, like so?
*** Settings ***
Test Setup Load Test Data
*** Keywords ***
Load Test Data
${test case name}= Get Test Case Name
${data}= Get File ${test case name}.txt
Set Test Variable ${data} ${data}
*** Testcases ***
First Test
Log ${data}
Second Test
Log ${data}
Basically, what would the equivalent of "Get Test Case Name" be?
If it can't be done easily using Robot Framework keywords, I don't mind getting my hands dirty with Python. I could create "Load Test Data" as a Python library if necessary. Is there perhaps a class that stores the name of the current test case, that I could access?
After a bit of digging, I was able to find this in the documentation:
There is a built-in variable ${TEST NAME}
, so my test case would look like:
*** Settings ***
Test Setup Load Test Data
*** Keywords ***
Load Test Data
${data}= Get File ${TEST NAME}.txt
Set Test Variable ${data} ${data}
*** Testcases ***
First Test
Log ${data}
Second Test
Log ${data}