I have a problem while trying to set up datadriver library with robot framework. I get to error that one of the variables is not found.
CSV File:
${username},${password}
admin@yourstore.com,adm
adm@yourstore.com,admin
adm1@yourstore.com,adm
DDT2_csv.robot:
*** Settings ***
Library SeleniumLibrary
Library DataDriver ../testdata/TestData.csv delimiter=, encoding=utf-8
Resource ../resources/login_resources.robot
Suite Setup login_resources.open my browser
Suite Teardown login_resources.close browsers
Test Template Invalid Login
*** Test Cases ***
Doing Test Credentials for ${username} and ${password} Default UserData
*** Keywords ***
Invalid Login
[Arguments] ${username} ${password}
input email ${username}
input password ${password}
click login button
error message should be visible
I am getting the below error:
==============================================================================
DDT2 csv
==============================================================================
Doing Test Credentials for ${username} and ${password} | FAIL |
Variable '${username}' not found.
------------------------------------------------------------------------------
[ WARN ] Multiple test cases with name 'Doing Test Credentials for ${username} and ${password}' executed in test suite 'DDT2 csv'.
Doing Test Credentials for ${username} and ${password} | FAIL |
Variable '${username}' not found.
------------------------------------------------------------------------------
[ WARN ] Multiple test cases with name 'Doing Test Credentials for ${username} and ${password}' executed in test suite 'DDT2 csv'.
Doing Test Credentials for ${username} and ${password} | FAIL |
Variable '${username}' not found.
------------------------------------------------------------------------------
DDT2 csv | FAIL |
3 tests, 0 passed, 3 failed
==============================================================================
Can anyone please help me out?
I'm no expert on this library but it looks to me like the delimiter arg is overwritten by the default dialect settings and is remaining as ";" even when you try the override.
It could be worth trying arg dialect=excel
as this defaults to ',' delimiter
https://github.com/Snooz82/robotframework-datadriver#file-encoding-and-csv-dialect
Example:
*** Settings ***
Library SeleniumLibrary
Library DataDriver ../testdata/TestData.csv dialect=excel encoding=utf-8
Resource ../resources/login_resources.robot
Suite Setup login_resources.open my browser
Suite Teardown login_resources.close browsers
Test Template Invalid Login
*** Test Cases ***
Doing Test Credentials for ${username} and ${password} Default UserData
*** Keywords ***
Invalid Login
[Arguments] ${username} ${password}
log to console ${username}
log to console ${password}
You may also need *** Test Cases ***
column in your csv as I believe it's a required column, something like below:
*** Test Cases ***,${username},${password}
Case1,admin@yourstore.com,adm
Case2,adm@yourstore.com,admin
Case3,adm1@yourstore.com,adm