diff options
author | ilanap <ilanap@amdocs.com> | 2019-08-04 10:16:33 +0300 |
---|---|---|
committer | ilanap <ilanap@amdocs.com> | 2019-08-04 10:16:33 +0300 |
commit | 061ca938ca6998b4ec33a862c763854259cfeab1 (patch) | |
tree | 824a0e4d9c21ed0f38d9dd497882e20687b7d1c0 /cucumber-js-test-apis-ci/cucumber-common/plugins | |
parent | 610ff24fb145dc64e73a12d51901446b7b8be245 (diff) |
Issue-ID: SDC-2483
Adding https support for cucumber tests and slight refactoring
Signed-off-by: ilanap <ilanap@amdocs.com>
Change-Id: Ib772d18cd4278238571daf54bcb6372c553d6e4b
Diffstat (limited to 'cucumber-js-test-apis-ci/cucumber-common/plugins')
4 files changed, 142 insertions, 0 deletions
diff --git a/cucumber-js-test-apis-ci/cucumber-common/plugins/README.md b/cucumber-js-test-apis-ci/cucumber-common/plugins/README.md new file mode 100644 index 0000000000..9eaeb8f3a6 --- /dev/null +++ b/cucumber-js-test-apis-ci/cucumber-common/plugins/README.md @@ -0,0 +1,30 @@ +<br> +<h1>Welcome!</h1> +This is the documentation for using the BDD testing framework for SDC.<br> +The Modules on the left contains all steps for particalar aress and/or explanations of what they do.<br> +<br><br> +<h3>How to set the server configuration</h3> +<li> Copy the config.json to devConfig.json +<li> Replace the server and user values with the correct values +<h3>How to run with Maven</h3> +<li>"mvn clean install" will install npm if needed, download all modules +<li> run "mvn install -DskipTests=true -P dev" to create the documentation under the "docs" folder +<li>"mvn test -P dev" will run all tests in the features folder and create an HTML report under the "reports" folder +<h3>How to develop tests</h3> +You can open the project in IntelliJ and Webstorm to run and develop scenarios.<br> +<li><b>You will need to install the Cucumber.Js plugin</b> In order to install, go to "Settings/Plugins". If cucumber.js in not on the list, go to "Browse repositories.." and install . +<li>First time only: Right click on feature file and try to run. Now go to "Run/edit configurations" and set the "executable path" to the "node_modules\.bin\cucumber-js.cmd" under your current project. +<li>Now you can run the feature files by right clicking on the file and selecting "Run" from IDEA.<br> +<li>Add to existing scenarios or create new files under the "features" directory for additional tests +<br> +<li>You can also run a specific test from the command line by running "npm run test -- [features/path to file] +<h3>More Information</h3> +<li> More on <a href="https://cucumber.io/docs/reference">Cucumber</a> +<li> More on <a herf="https://github.com/cucumber/cucumber/wiki/Gherkin">Gherkin</a> +<li> More on <a href="https://github.com/cucumber/cucumber-js">Cucumber-js</a> +<br> +<h3>How to run the docker</h3> +<li>"mvn clean install -P docker" will create the docker images +<li>the "docker_run.sh" script will start all ONAP images and run the cucumber docker against them +<li> environment variables that can be set to change the server/version: IMAGES_TAG (default 1.4-STAGING-latest), TEST_CI_BE_HOST (deafult - machine IP), TEST_CI_CATALOG_PORT (default 8080) + diff --git a/cucumber-js-test-apis-ci/cucumber-common/plugins/jsdoc_config.json b/cucumber-js-test-apis-ci/cucumber-common/plugins/jsdoc_config.json new file mode 100644 index 0000000000..2757000472 --- /dev/null +++ b/cucumber-js-test-apis-ci/cucumber-common/plugins/jsdoc_config.json @@ -0,0 +1,16 @@ +{ + "tags": { + "allowUnknownTags": true + }, + "templates": { + "default": { + "outputSourceFiles": false + } + }, + + "plugins": ["./steps"], + "opts": { + "template": "node_modules/jsdoc-one-page", + "destination": "docs/" + } +}
\ No newline at end of file diff --git a/cucumber-js-test-apis-ci/cucumber-common/plugins/reporter.js b/cucumber-js-test-apis-ci/cucumber-common/plugins/reporter.js new file mode 100644 index 0000000000..8913789c95 --- /dev/null +++ b/cucumber-js-test-apis-ci/cucumber-common/plugins/reporter.js @@ -0,0 +1,31 @@ +/* + * Copyright © 2016-2017 European Support Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var reporter = require('cucumber-html-reporter'); + +var options = { + theme: 'bootstrap', + jsonFile: 'report/report.json', + output: 'report/report.html', + reportSuiteAsScenarios: true, + launchReport: false, + metadata: { + "ONAP" : "Some build", + "Executed": "Local" + } +}; + +reporter.generate(options); + diff --git a/cucumber-js-test-apis-ci/cucumber-common/plugins/steps.js b/cucumber-js-test-apis-ci/cucumber-common/plugins/steps.js new file mode 100644 index 0000000000..2faa7efbd8 --- /dev/null +++ b/cucumber-js-test-apis-ci/cucumber-common/plugins/steps.js @@ -0,0 +1,65 @@ +/* + * Copyright © 2016-2017 European Support Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @module plugins/steptag + */ +'use strict'; + + +exports.handlers = { + /** + * Support @step tag. + * + * @step description + */ + newDoclet: function(e) { + var tags = e.doclet.tags; + var tag; + var value; + + // any user-defined tags in this doclet? + if (typeof tags !== 'undefined') { + + tags = tags.filter(function($) { + return $.title === 'step' || $.title === 'examplefile'; + }); + + if (tags.length) { + // take the first one + tag = tags[0]; + let step = null; + let exampleFile = null; + for (tag in tags) { + if (tags[tag].title === "step") { + step = "<b>" + tags[tag].value + "</b><br>"; + } + if (tags[tag].title === "examplefile") { + exampleFile = "<i> Example Features File: " + tags[tag].value + "</i><br>"; + } + } + if (exampleFile !== null) { + step += exampleFile; + } + e.doclet.meta = e.doclet.meta || {}; + if (e.doclet.description !== undefined) { + e.doclet.description = step + e.doclet.description; + } else { + e.doclet.description = step; + } + } + } + } +};
\ No newline at end of file |