-2

Cucumber Gherkin: Is there a way to have your gherkin scenarios written and managed in excel sheets instead of .feature files in IntelliJ or Eclipse like in SpecFlow+Excel(screenshot given as link below)? I am using Cucumber-JVM with selenium for my automation framework.

Excel based Scenarios

PS: Will there be any pros or cons to using excel sheets as your feature files?

4 Answers4

2

You could write a compiler that takes .csv files and translates them into feature files by doing a write.

Here's a quick thing I whipped up in JS that does just that.

First it removes blank lines, then searches through for keywords with a missing colon (it might happen somewhere down the road) and adds those in, checks for an examples table, and as per your photo, this was easy to do, as it was just checking whether the start character was a comma (after having removed the blank lines, and keywords always being in the first section). Finally, removing the rest of the commas.

The only difference, I believe, is that mine included the Feature: and Scenario:/Scenario Outline line that is needed to create a valid scenario in cucumber.

So yes. It is possible. You'll just have to compile the csv's into feature files first.

function constructFeature(csvData) {

  let data = csvData,
    blankLineRegex = /^,+$/gm,
    keywordsWithCommasRegex = /(Feature|Scenario|Scenario Outline|Ability|Business Need|Examples|Background),/gm,
    examplesTableRegex = /^,.*$/gm;

  data = data
    .toString()
    .replace(blankLineRegex, "");

  data.match(keywordsWithCommasRegex).forEach((match) => {
    data = data.replace(match, match.replace(',', ":,"))
  });

  data.match(examplesTableRegex).forEach((match) => {
    data = data.replace(match, match.replace(/,/g, "|").replace(/$/, "|"))
  });

  data = data.replace(/,/g, " ");
  data = data.replace(/\ +/g, " ");

  console.log(data);

}

let featureToBuild = `Feature,I should be able to eat apples,,
,,,
Scenario Outline,I eat my apples,,
Given,I have ,<start>,apples
When,I eat,<eat>,apples
Then,I should have,<end>,apples
,,,
Examples,,,
,start,eat,end
,4,2,2
,3,2,1
,4,3,1`

constructFeature(featureToBuild);

Just take that output and shove it into an aptly named feature file.

And here's the original excel document:

The original excel document

KyleFairns
  • 2,947
  • 1
  • 15
  • 35
1

No, Gherkin is the language understood by Cucumber.

If you want to introduce Excel in the equation, you probably want to use some other tool. Or implement your own functionality that reads Excel and does something interesting based on the content.

Thomas Sundberg
  • 4,098
  • 3
  • 18
  • 25
  • I am still planning to use Gherkin. Only that instead of having it flow from a txt file within the IDE, I am thinking about getting the gherkin scenarios from excel. see attached screenshot in the question details for an example. – Gajendra Varadhan Jan 11 '18 at 17:25
  • @Gajendra - As Thomas is trying to tell you, Cucumber cannot read from the Excel. What is the reason you want to use excel? (What will that offer you that .feature files don't? – Marit Jan 22 '18 at 14:36
0

The downside of using Excel is that you'll be using Excel.

The upside of using feature files as part of your project are: * they are under version control (assuming you use git or similar) * you IDE with Cucumber plugin can help you: - For instance, IntelliJ (which has a free Community edition) will highlight any steps that have not been implemented yet, or suggest steps that have been implemented - You can also generate step definitions from your feature file * when running tests you will see if and where your feature file violates Gherkin syntax

TL;DR: Having the feature file with your code base will make it easier to write and implement scenarios!

Also, like @Thomas Sundberg said, Cucumber cannot read Excel. Cucumber can only process the feature files, so you will have to copy your scenarios from Excel to feature files at some point.

So what you are asking is not possible with Cucumber.

If you want to read test cases from Excel you'll have to build your own data driven tests. You could for instance use Apache POI.

Marit
  • 2,399
  • 18
  • 27
0

There's a solution out there which does scenarios and data only in Excel. However, this I have tried in conjunction with Cucumber and not with any test application. You could try and see if you want to use this: Acceptance Tests Excel Addin (for Gherkin)

However, not that Excel as a workbook or multiple workbooks can be source controlled, but it is hard to maintain revisions.

But then Excel provides you flexibility with managing data. You must also think not duplicating your test information and data in multiple places. So check this out, may be helpful.

B Charles H
  • 95
  • 2
  • 9