summaryrefslogtreecommitdiffstats
path: root/cucumber-js-test-apis-ci/cucumber-common/plugins
diff options
context:
space:
mode:
authorilanap <ilanap@amdocs.com>2019-08-04 10:16:33 +0300
committerilanap <ilanap@amdocs.com>2019-08-04 10:16:33 +0300
commit061ca938ca6998b4ec33a862c763854259cfeab1 (patch)
tree824a0e4d9c21ed0f38d9dd497882e20687b7d1c0 /cucumber-js-test-apis-ci/cucumber-common/plugins
parent610ff24fb145dc64e73a12d51901446b7b8be245 (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')
-rw-r--r--cucumber-js-test-apis-ci/cucumber-common/plugins/README.md30
-rw-r--r--cucumber-js-test-apis-ci/cucumber-common/plugins/jsdoc_config.json16
-rw-r--r--cucumber-js-test-apis-ci/cucumber-common/plugins/reporter.js31
-rw-r--r--cucumber-js-test-apis-ci/cucumber-common/plugins/steps.js65
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