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.