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 -
These following reason:
[org/picocontainer/PicoBuilder]
2022-04-05 11:50:21.035 ERROR c.k.k.core.keyword.internal.KeywordMain -
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 -
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
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.