1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-14 11:03:09 +02:00
sap-jenkins-library/resources/metadata/karmaExecuteTests.yaml

107 lines
3.6 KiB
YAML
Raw Normal View History

metadata:
name: karmaExecuteTests
description: Executes the Karma test runner
longDescription: |
In this step the ([Karma test runner](http://karma-runner.github.io)) is executed.
The step is using the `seleniumExecuteTest` step to spin up two containers in a Docker network:
* a Selenium/Chrome container (`selenium/standalone-chrome`)
* a NodeJS container (`node:lts-stretch`)
In the Docker network, the containers can be referenced by the values provided in `dockerName` and `sidecarName`, the default values are `karma` and `selenium`. These values must be used in the `hostname` properties of the test configuration ([Karma](https://karma-runner.github.io/1.0/config/configuration-file.html) and [WebDriver](https://github.com/karma-runner/karma-webdriver-launcher#usage)).
!!! note
In a Kubernetes environment, the containers both need to be referenced with `localhost`.
spec:
inputs:
secrets:
- name: seleniumHubCredentialsId
type: jenkins
description: "Defines the id of the user/password credentials to be used to connect to a Selenium Hub. The credentials are provided in the environment variables `PIPER_SELENIUM_HUB_USER` and `PIPER_SELENIUM_HUB_PASSWORD`."
resources:
- name: buildDescriptor
type: stash
- name: tests
type: stash
params:
- name: installCommand
type: string
description: The command that is executed to install the test tool.
default: npm install --quiet
scope:
2020-08-31 16:10:28 +02:00
- GENERAL
- PARAMETERS
- STAGES
- STEPS
mandatory: true
- name: modules
type: "[]string"
description: Define the paths of the modules to execute tests on.
default: ["."]
scope:
2020-08-31 16:10:28 +02:00
- PARAMETERS
- STAGES
- STEPS
mandatory: true
- name: runCommand
type: string
description: The command that is executed to start the tests.
default: npm run karma
scope:
2020-08-31 16:10:28 +02:00
- GENERAL
- PARAMETERS
- STAGES
- STEPS
mandatory: true
outputs:
resources:
- name: reports
type: reports
params:
- filePattern: "**/TEST-*.xml"
type: karma
- filePattern: "**/cobertura-coverage.xml"
type: karma
- filePattern: "**/TEST-*.xml"
type: junit
- filePattern: "**/jacoco.xml"
type: jacoco-coverage
- filePattern: "**/cobertura-coverage.xml"
type: cobertura-coverage
- filePattern: "**/xmake_stage.json"
type: xmake
- filePattern: "**/requirement.mapping"
type: requirement-mapping
containers:
2019-11-08 12:28:42 +02:00
- name: karma
image: node:lts-stretch
2019-11-08 12:28:42 +02:00
env:
2020-08-31 16:10:28 +02:00
- name: no_proxy
value: localhost,selenium,$no_proxy
- name: NO_PROXY
value: localhost,selenium,$NO_PROXY
- name: "PIPER_SELENIUM_HOSTNAME"
value: "karma"
- name: "PIPER_SELENIUM_WEBDRIVER_HOSTNAME"
value: "selenium"
- name: "PIPER_SELENIUM_WEBDRIVER_PORT"
value: "4444"
2019-11-08 12:28:42 +02:00
workingDir: /home/node
volumeMounts:
2020-08-31 16:10:28 +02:00
- mountPath: /dev/shm
name: dev-shm
sidecars:
2020-08-31 16:10:28 +02:00
- image: selenium/standalone-chrome
name: selenium
securityContext:
privileged: true
volumeMounts:
- mountPath: /dev/shm
name: dev-shm
env:
- name: "NO_PROXY"
value: "localhost,karma,$NO_PROXY"
- name: "no_proxy"
value: "localhost,selenium,$no_proxy"