Cucumber runFeatureFile calls are not nested properly

Operating System Windows 10

Katalon Studio Version 6.3.3

Katalon Studio logs

  • Nothing new is logged when executing the test that reproduces the bug

Environment (for Web testing)

  • Chrome Version 77.0.3865.75 (Official Build) (64-bit)

Steps to reproduce

  1. Create the step definition with provided source (call the Step Definition class whatever you want)
  2. Create the feature file with provided source
  3. Create the test case with provided source. Modify the path to the feature file to match your own
  4. Run the test case directly with any browser or with Web Service (does not need a browser)
  5. See the execution log in Log Viewer tab with Tree View

Expected Behavior

Because the Test Case has executed two calls to CucumberKW.runFeatureFile, I expect to see something like:
1 - runFeatureFile("Include/features/RMP Samples/00 - RMP Step Definitions tests/com.runmyprocess.cucumber.CucumberSamplesStepsDefinitions/DummySteps.feature")
       SCENARIO dummy test with argument
       SCENARIO dummy test without argument
2 - runFeatureFile("Include/features/RMP Samples/00 - RMP Step Definitions tests/com.runmyprocess.cucumber.CucumberSamplesStepsDefinitions/DummySteps.feature")
       SCENARIO dummy test with argument
       SCENARIO dummy test without argument

Actual Behavior

1. runFeatureFile("Include/features/RMP Samples/00 - RMP Step Definitions tests/com.runmyprocess.cucumber.CucumberSamplesStepsDefinitions/DummySteps.feature")
       SCENARIO dummy test with argument
       SCENARIO dummy test without argument
       1.2 - runFeatureFile("Include/features/RMP Samples/00 - RMP Step Definitions tests/com.runmyprocess.cucumber.CucumberSamplesStepsDefinitions/DummySteps.feature")
           SCENARIO dummy test with argument
           SCENARIO dummy test without argument

Screenshots / Videos (please attach screenshots or videos if necessary to reproduce the issue)

Step definition:

	/**
	 * Dummy step: use it when you don't want to specify a real step. It only prints a message in log.
* Formats:
	 *     Dummy step
	 *     dummy step
	 *     Dummy step '<text>'
	 *     dummy step '<text>'
	 * 
 * @param text Any text
 */
@Given("[dD]ummy step( '(.+)')?")
void dummy_step(String text) {

	// Trace
	println "Step definition method: CucumberSamplesStepsDefinitions.dummy_step text=${text}"
}

Feature file to test with:

Feature: Test that Katalon Studio cannot find the step definition if the annotation uses a regular expression

    Scenario: Dummy step with argument
        Given dummy step 'this is a Given step'
        When  dummy step 'this is a When step'
        Then  dummy step 'this is a Then step'

    Scenario: Dummy step without argument
        Given dummy step
        When  dummy step
        Then  dummy step

Test Case source:

import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import internal.GlobalVariable as GlobalVariable

CucumberKW.runFeatureFile("Include/features/RMP Samples/00 - RMP Step Definitions tests/com.runmyprocess.cucumber.CucumberSamplesStepsDefinitions/DummySteps.feature")

CucumberKW.runFeatureFile("Include/features/RMP Samples/00 - RMP Step Definitions tests/com.runmyprocess.cucumber.CucumberSamplesStepsDefinitions/DummySteps.feature")