Docker container fails looking for Include/features in /katalon/katalon/tmp/

10-17-2018 12:07:30 AM - [START] - Start action : runWithCucumberRunner

10-17-2018 12:07:31 AM - [END] - End action : runWithCucumberRunner

10-17-2018 12:07:31 AM - [FAILED] - Keyword runWithCucumberRunner was failed (Root cause: groovy.lang.MissingMethodException: No signature of method: static com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed() is applicable for argument types: (java.lang.String) values: [These following reason:

[Not a file or directory: /katalon/katalon/tmp/Include/features]]

Possible solutions: stepFailed(java.lang.String, com.kms.katalon.core.model.FailureHandling), stepFailed(java.lang.String, com.kms.katalon.core.model.FailureHandling, java.lang.String), stepFailed(java.lang.String, com.kms.katalon.core.model.FailureHandling, java.lang.String, java.util.Map))

10-17-2018 12:07:31 AM - [FAILED] - Test Cases/Navigation/BDD Navigation FAILED because (of) (Stack trace: com.kms.katalon.core.exception.StepFailedException: Keyword runWithCucumberRunner was failed (Root cause: groovy.lang.MissingMethodException: No signature of method: static com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed() is applicable for argument types: (java.lang.String) values: [These following reason:

[Not a file or directory: /katalon/katalon/tmp/Include/features]]

running with the following yields an error:

docker run -it \

-v /Users/aaronsua/Repos/tests_katalon/wcui:/katalon/katalon/source:ro \

-v /Users/aaronsua/Repos/tests_katalon/reports:/katalon/katalon/report \
-e KATALON_OPTS=’-browserType=“Chrome” -retry=0 -statusDelay=15 -testSuitePath=“Test Suites/TestSuite” -executionProfile=localhost’ \

registry.windsorcircle.com/docker/katalon/base/dev:latest

Test Suite executes as expected from the GUI

I edited the entrypoint shell script to copy everything from source to tmp
cp -r $KATALON_KATALON_ROOT_DIR/source/. $tmp_dir

and execute with:

docker run -it \

-v /Users/aaronsua/Repos/tests_katalon/wcui:/katalon/katalon/source:ro \

-v /Users/aaronsua/Repos/tests_katalon/reports:/katalon/katalon/report \
-v /Users/aaronsua/Repos/tests_katalon/wcui/katalon-execute.sh:/katalon/katalon/scripts/katalon-execute.sh:ro \
-e KATALON_OPTS=’-browserType=“Chrome” -retry=0 -statusDelay=15 -testSuitePath=“Test Suites/TestSuite” -executionProfile=localhost’ \

registry.windsorcircle.com/docker/katalon/base/dev:latest

as a workaround

Instead of editing the entrypoint shell script you can just add another volume to the docker command so that the tests are present in the tmp folder too.

ex:

docker run -it \

-v /Users/aaronsua/Repos/tests_katalon/wcui:/katalon/katalon/source:ro \

-v /Users/aaronsua/Repos/tests_katalon/wcui:/katalon/katalon/tmp \

-v /Users/aaronsua/Repos/tests_katalon/reports:/katalon/katalon/report \
-e
KATALON_OPTS=’-browserType=“Chrome” -retry=0 -statusDelay=15
-testSuitePath=“Test Suites/TestSuite” -executionProfile=localhost’ \

registry.windsorcircle.com/docker/katalon/base/dev:latest

Double mounting volumes like that can have unpredictable results, and for Docker for Mac causes significant performance drain.