Search code examples
qaf

Can QAF @datafile be parametrized?


Is it possible to parametrize @datafile in QAF BDD2? I have the following line in my cucumber feature file

  @dataFile:src/test/resources/testdata.xls

I'd like to be able to use different test data files depending on the environment I run the test in. So I'll have

@dataFile:src/test/resources/env1_testdata.xls

of one environment and

@dataFile:src/test/resources/env2_testdata.xls 

for another


Solution

  • Yes, as per documentation, You can use any property in value of meta-data for data provider. It will get resolved using configuration manager. You can utilize this feature as per your convenience. Below are few examples:

    #example 1: file with env prefix
    @dataFile:src/test/resources/${env.name}_testdata.xls 
    #example 2: directory with env name
    @dataFile:src/test/resources/${env.name}/testdata.xls
    #example 3: sheet with env name
    @dataFile:src/test/resources/testdata.xls @sheetName:${env.name}
    #example 4: data table with env name
    @dataFile:src/test/resources/testdata.xls @key:${env.name}
    #example 5: multiple parameters
    @dataFile:src/test/resources/${env.name}_testdata_${env.default.locale}.xls 
    

    in above examples, the first one assumes file with env prefix, second example assumes directory with env name, and the third one is sheet in data file with env name. Provided env.name=qa actual values will be resolved as

    @dataFile:src/test/resources/qa_testdata.xls 
    @dataFile:src/test/resources/qa/testdata.xls
    @dataFile:src/test/resources/testdata.xls @sheetName:qa
    @dataFile:src/test/resources/testdata.xls @key:qa
    

    Related documentation: