Katalon Cucumber - Picocontainer Configuration

I am configuring Katalon to execute with Cucumber. Picocontainer is used to pass test state between step definitions.

I’m having difficulty configuring picocontainer.

cucumber-picocontainer-3.0.2.jar has been added in External Libraries.
A Cucumber runner class has been implemented.

When I execute, I get the error below.

Test Cases/_EATestCase1 FAILED.
Reason:
com.kms.katalon.core.exception.StepFailedException: These following reason:
[org/picocontainer/PicoBuilder]
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:50)
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy)
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:23)
at com.kms.katalon.core.keyword.internal.KeywordMain$stepFailed$0.call(Unknown Source)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords$_runWithCucumberRunner_closure5.doCall(CucumberBuiltinKeywords.groovy:633)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords$_runWithCucumberRunner_closure5.doCall(CucumberBuiltinKeywords.groovy)
at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:74)
at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:68)
at com.kms.katalon.core.keyword.internal.KeywordMain$runKeyword.call(Unknown Source)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords.runWithCucumberRunner(CucumberBuiltinKeywords.groovy:618)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords$runWithCucumberRunner$0.callStatic(Unknown Source)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords.runWithCucumberRunner(CucumberBuiltinKeywords.groovy:718)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords$runWithCucumberRunner.call(Unknown Source)
at _EATestCase1.run(_EATestCase1:22)
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:442)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:433)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:412)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:404)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:281)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:142)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:133)
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
at TempTestCase1649082027365.run(TempTestCase1649082027365.groovy:25)

I am not sure what this error is.
com.kms.katalon.core.exception.StepFailedException: These following reason:
[org/picocontainer/PicoBuilder]

I have configured Cucumber with Java and Maven many times. I am trying to do the same with Katalon Cucumber. Picocontainer is required to share test state between step definitions.

Thank you.

@mike.duncan.ctr

Please show your CucumberRunner script and full stacktrace in the Console log here

package cucumberrunner

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 static com.kms.katalon.core.testobject.ObjectRepository.findWindowsObject

import com.kms.katalon.core.annotation.Keyword
import com.kms.katalon.core.checkpoint.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
import com.kms.katalon.core.testcase.TestCase
import com.kms.katalon.core.testdata.TestData
import com.kms.katalon.core.testobject.TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import com.kms.katalon.core.windows.keyword.WindowsBuiltinKeywords as Windows

import internal.GlobalVariable

import org.junit.runner.RunWith
import cucumber.api.CucumberOptions
import cucumber.api.junit.Cucumber

@RunWith(Cucumber.class)
@CucumberOptions(
tags = “”,
features=“Include/features”,
glue="",
plugin=[“pretty”, “html:target”, “json:target/cucumber.json”],
monochrome = false
)
public class EACucumberRunner {

}

2022-04-05 11:50:17.607 INFO c.k.katalon.core.main.TestCaseExecutor - --------------------
2022-04-05 11:50:17.616 INFO c.k.katalon.core.main.TestCaseExecutor - START Test Cases/_EATestCase1
2022-04-05 11:50:18.826 DEBUG testcase._EATestCase1 - 1: runWithCucumberRunner(cucumberrunner.EACucumberRunner)

0 Scenarios
0 Steps
0m0.041s

2022-04-05 11:50:21.017 ERROR c.k.k.core.keyword.internal.KeywordMain - :x: These following reason:
[org/picocontainer/PicoBuilder]
2022-04-05 11:50:21.035 ERROR c.k.k.core.keyword.internal.KeywordMain - :x: Keyword runWithCucumberRunner was failed (Root cause: com.kms.katalon.core.exception.StepFailedException: These following reason:
[org/picocontainer/PicoBuilder]
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:50)
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy)
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:23)
at com.kms.katalon.core.keyword.internal.KeywordMain$stepFailed$0.call(Unknown Source)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords$_runWithCucumberRunner_closure5.doCall(CucumberBuiltinKeywords.groovy:633)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords$_runWithCucumberRunner_closure5.doCall(CucumberBuiltinKeywords.groovy)
at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:74)
at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:68)
at com.kms.katalon.core.keyword.internal.KeywordMain$runKeyword.call(Unknown Source)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords.runWithCucumberRunner(CucumberBuiltinKeywords.groovy:618)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords$runWithCucumberRunner$0.callStatic(Unknown Source)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords.runWithCucumberRunner(CucumberBuiltinKeywords.groovy:718)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords$runWithCucumberRunner.call(Unknown Source)
at _EATestCase1.run(_EATestCase1:22)
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:442)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:433)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:412)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:404)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:281)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:142)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:133)
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
at TempTestCase1649173812395.run(TempTestCase1649173812395.groovy:25)
)
2022-04-05 11:50:21.042 ERROR c.k.katalon.core.main.TestCaseExecutor - :x: Test Cases/_EATestCase1 FAILED.
Reason:
com.kms.katalon.core.exception.StepFailedException: These following reason:
[org/picocontainer/PicoBuilder]
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:50)
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy)
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:23)
at com.kms.katalon.core.keyword.internal.KeywordMain$stepFailed$0.call(Unknown Source)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords$_runWithCucumberRunner_closure5.doCall(CucumberBuiltinKeywords.groovy:633)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords$_runWithCucumberRunner_closure5.doCall(CucumberBuiltinKeywords.groovy)
at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:74)
at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:68)
at com.kms.katalon.core.keyword.internal.KeywordMain$runKeyword.call(Unknown Source)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords.runWithCucumberRunner(CucumberBuiltinKeywords.groovy:618)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords$runWithCucumberRunner$0.callStatic(Unknown Source)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords.runWithCucumberRunner(CucumberBuiltinKeywords.groovy:718)
at com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords$runWithCucumberRunner.call(Unknown Source)
at _EATestCase1.run(_EATestCase1:22)
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:442)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:433)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:412)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:404)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:281)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:142)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:133)
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
at TempTestCase1649173812395.run(TempTestCase1649173812395.groovy:25)

2022-04-05 11:50:21.063 INFO c.k.katalon.core.main.TestCaseExecutor - END Test Cases/_EATestCase1

@duyluong Thank you

This class is contained in the jar distributed at

but your project does not have the jar in the project’s .classpath. Therefore the error occurred.


Unfortunately Katalon Studio lacks the capability of external dependency management similar to Maven (and Gradle). Therefore you need to make a special effort; you have to download all the required external jars into the Drivers folder for yourself.

1 Like

I know, you raised another post about Picocontainer

In the post you wrote you want

  • io.cucumber:cucumber-picocontainer:7.0.0

which is a relatively newer version. But now you wrote you want

  • io.cucumber:cucumber-picocontainer:3.0.2

You changed the version as target. OK. I guess you acknowledged that Katalon Studio bundles the 4years old version 3.0.2 cucumber, and so you are now prepared to use that old version. Then, why not you try executing

$ gradle katalonCopyDependencies

with the build.gradle as follows:

plugins {
    id "com.katalon.gradle-plugin" version "0.1.1"
}

repositories {
    mavenCentral()
}

dependencies {
    runtimeClasspath "io.cucumber:cucumber-picocontainer:3.0.2"
}

Please rememeber, you need Gradle 7 installed.

When I tried it, I got the following files in the Drivers folder.

$ ls
katalon_generated_cucumber-core-3.0.2.jar
katalon_generated_cucumber-expressions-5.0.19.jar
katalon_generated_cucumber-html-0.2.7.jar
katalon_generated_cucumber-java-3.0.2.jar
katalon_generated_cucumber-picocontainer-3.0.2.jar
katalon_generated_datatable-1.0.3.jar
katalon_generated_datatable-dependencies-1.0.3.jar
katalon_generated_gherkin-5.0.0.jar
katalon_generated_picocontainer-2.15.jar
katalon_generated_tag-expressions-1.1.1.jar

Here you can find the picocontainer-2.15.jar which you require now. Possibly all the required external jars are ready in the Drivers folder now.

1 Like

@kazurayam
When I execute katalonCopyDependencies, I get the error below. My build.gradle file is exactly the same as your build.gradle file. The gradle version used is 7.

FAILURE: Build failed with an exception.

  • What went wrong:
    Plugin [id: ‘com.katalon.gradle-plugin’, version: ‘0.1.1’] was not found in any of the following sources:
  • Gradle Core Plugins (plugin is not in ‘org.gradle’ namespace)
  • Plugin Repositories (could not resolve plugin artifact ‘com.katalon.gradle-plugin:com.katalon.gradle-plugin.gradle.plugin:0.1.1’)
    Searched in the following repositories:
    Gradle Central Plugin Repository

BUILD FAILED in 1s

@kazurayam
Thank you for the solution.