Is it possible to run Karate test in a pod? If possible, then how?

8/8/2019

I just want to know whether I can run Karate test in a pod. Or is there any good suggestion on how to run it?

I tried to run the Karate test in terminal and it works. Just want to know if I can run it from Kubernetes pod. Nginx also running in the pod.

-- Chxk
kubernetes
kubernetes-pod

2 Answers

8/13/2019

Posting as Community Wiki for future use.

@Harsh Manvar provided good example, however if you will just build it from Dockerfile, you will recieved errors. You have to download all files mentioned in Github. Correct oreder will be:

$ git clone https://github.com/neillfontes/karate-sample.git
$ cd karate-sample
$ docker build -t karate_docker .

After image was built you can check it:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
karate_docker       latest              9dc6d7a5278a        About a minute ago   136MB

Later you can start testing using:

$ docker run karate_docker
START: Running tests...

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running demo.DemoTest
11:57:49.684 [main] DEBUG c.i.karate.cucumber.CucumberRunner - init test class: class demo.DemoTest
11:57:50.412 [main] DEBUG c.i.karate.cucumber.CucumberRunner - loading feature: /usr/src/app/target/test-classes/demo/features/get-token.feature
11:57:50.663 [main] DEBUG c.i.karate.cucumber.CucumberRunner - loading feature: /usr/src/app/target/test-classes/demo/features/make-request.feature
11:57:53.898 [main] INFO  com.intuit.karate.ScriptBridge - karate.env system property was: null
11:57:54.867 [main] DEBUG c.i.k.h.a.RequestLoggingInterceptor -
1 > POST http://brentertainment.com/oauth2/lockdin/token
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 96
-- PjoterS
Source: StackOverflow

8/8/2019

You can everything in pod whatever you are running outside environment. Pod run the container inside it.

So create the docker file and generate the docker image using docker file. Using that docker image and start the karate pod.

You can write the docker file like this

FROM maven:3-jdk-8-alpine

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY settings.xml /usr/share/maven/ref/
COPY pom.xml /tmp/pom.xml

COPY . /usr/src/app

RUN mvn -B -f /tmp/pom.xml -s /usr/share/maven/ref/settings-docker.xml prepare-package -DskipTests

CMD ["/usr/src/app/maven_runner.sh"]

I found here one example : https://github.com/neillfontes/karate-sample

-- Harsh Manvar
Source: StackOverflow