github.com/jaylevin/jenkins-library@v1.230.4/resources/metadata/gaugeExecuteTests.yaml (about) 1 metadata: 2 name: gaugeExecuteTests 3 description: Installs gauge and executes specified gauge tests. 4 longDescription: | 5 In this step Gauge ([getgauge.io](https://getgauge.io)) acceptance tests are executed. Using Gauge it will be possible to have a three-tier test layout: 6 7 Acceptance Criteria 8 Test implemenation layer 9 Application driver layer 10 11 This layout is propagated by Jez Humble and Dave Farley in their book "Continuous Delivery" as a way to create maintainable acceptance test suites (see "Continuous Delivery", p. 190ff). 12 13 Using Gauge it is possible to write test specifications in [Markdown syntax](http://daringfireball.net/projects/markdown/syntax) and therefore allow e.g. product owners to write the relevant acceptance test specifications. At the same time it allows the developer to implement the steps described in the specification in her development environment. 14 15 You can use the [sample projects](https://github.com/getgauge/gauge-mvn-archetypes) of Gauge. 16 17 spec: 18 inputs: 19 secrets: 20 - name: seleniumHubCredentialsId 21 type: jenkins 22 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`." 23 resources: 24 - name: buildDescriptor 25 type: stash 26 - name: tests 27 type: stash 28 params: 29 - name: installCommand 30 type: string 31 description: 'Defines the command for installing Gauge. Gauge should be installed using npm. Example: npm install -g @getgauge/cli@1.2.1' 32 scope: 33 - STEPS 34 - STAGES 35 - PARAMETERS 36 - name: languageRunner 37 type: string 38 description: 'Defines the Gauge language runner to be used. Example: java' 39 scope: 40 - STEPS 41 - STAGES 42 - PARAMETERS 43 - name: runCommand 44 type: string 45 description: 'Defines the command which is used for executing Gauge. Example: run -s -p specs/' 46 scope: 47 - STEPS 48 - STAGES 49 - PARAMETERS 50 mandatory: true 51 - name: testOptions 52 type: string 53 description: "Allows to set specific options for the Gauge execution. Details can be found for example [in the Gauge Maven plugin documentation](https://github.com/getgauge-contrib/gauge-maven-plugin#executing-specs)" 54 scope: 55 - STEPS 56 - STAGES 57 - PARAMETERS 58 outputs: 59 resources: 60 - name: influx 61 type: influx 62 params: 63 - name: step_data 64 fields: 65 - name: gauge 66 type: bool 67 - name: reports 68 type: reports 69 params: 70 - filePattern: "**/TEST-*.xml" 71 type: acceptance-test 72 - filePattern: "**/requirement.mapping" 73 type: requirement-mapping 74 - filePattern: "**/delivery.mapping" 75 type: delivery-mapping 76 containers: 77 - name: gauge 78 image: node:lts-stretch 79 env: 80 - name: no_proxy 81 value: localhost,selenium,$no_proxy 82 - name: NO_PROXY 83 value: localhost,selenium,$NO_PROXY 84 workingDir: /home/node 85 volumeMounts: 86 - mountPath: /dev/shm 87 name: dev-shm 88 sidecars: 89 - image: selenium/standalone-chrome 90 name: selenium 91 securityContext: 92 privileged: true 93 volumeMounts: 94 - mountPath: /dev/shm 95 name: dev-shm 96 env: 97 - name: "NO_PROXY" 98 value: "localhost,selenium,$NO_PROXY" 99 - name: "no_proxy" 100 value: "localhost,selenium,$no_proxy"