summaryrefslogtreecommitdiffstats
path: root/cucumber-js-test-apis-ci/plugins/README.md
blob: a57d61b1bb54bd66c69342cce53b330f729009ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<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 -f dev_pom.xml" will install npm if needed, download all modules and create the documentation under the "docs" folder
<li>"mvn test-and-report" 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)
18 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>org.openecomp.sdc</groupId>
	<artifactId>sdc-main</artifactId>
	<version>1.2.0-SNAPSHOT</version>
	<packaging>pom</packaging>
        <name>sdc</name>	
	<properties>

		<!-- ==================== -->
		<!-- Generic properties -->
		<!-- ==================== -->
		<build.type>-SNAPSHOT</build.type>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<sprint.number>74</sprint.number>

		<!-- 3rd parties versions -->
		<lang3.version>3.3.2</lang3.version>
		<guava.version>18.0</guava.version>
		<titan.version>1.0.0</titan.version>
		<spring-boot.version>1.1.6.RELEASE</spring-boot.version>
		<spring.version>4.3.4.RELEASE</spring.version>
		<spring.security.version>3.2.3.RELEASE</spring.security.version>
		<spring.ldap.version>2.0.1.RELEASE</spring.ldap.version>
        <jersey-bom.version>2.24</jersey-bom.version>
        <servlet-api.version>2.5</servlet-api.version>

		<artifact-generator-api.version>${project.version}</artifact-generator-api.version>
		<artifact-generator-core.version>${project.version}</artifact-generator-core.version>
		<ecomp.version>1.1.0</ecomp.version>
		<dox-common-lib.version>${project.version}</dox-common-lib.version>

		<!-- Elastic Search mapper (reference the elastic search version actually). -->
		<elastic-search.version>2.1.0</elastic-search.version>
		<jetty.version>9.2.10.v20150310</jetty.version>

		<!-- JSON and YAML Parsing -->
		<jackson.version>2.6.2</jackson.version>
		<jackson.yaml.version>2.8.1</jackson.yaml.version>
		<jackson.annotations.version>2.6.0</jackson.annotations.version>

		<!-- Yaml for properties -->
		<snakeyaml.version>1.14</snakeyaml.version>
		<functionaljava.version>4.4</functionaljava.version>
		<httpclient.version>4.4.1</httpclient.version>
		<httpcore.version>4.4.1</httpcore.version>
		<json-simple.version>1.1</json-simple.version>


		<!-- Logging start -->
		<!-- logback -->
        <logback.version>1.1.2</logback.version>
        <slf4j-api.version>1.7.10</slf4j-api.version>
        <commons-codec>1.10</commons-codec>
        <commons-logging>1.2</commons-logging>
		<groovy.version>2.3.5</groovy.version>
		<janino.version>3.0.6</janino.version>

		<!-- aspects -->
		<jcabi.version>0.20.1</jcabi.version>
		<aspectjrt.version>1.8.4</aspectjrt.version>
		<aspectj.version>1.7.4</aspectj.version>
		<jcabi.plugin.version>0.13.2</jcabi.plugin.version>

		<!-- Logging end -->
		<!-- System Metrics -->
		<sigar.version>1.6.4</sigar.version>

		<regex.version>3.0.3</regex.version>

		<codehaus.jackson.core>1.9.2</codehaus.jackson.core>

		<!--GSON-->
		<gson.version>2.3.1</gson.version>

        <!--listen to file changes-->
        <commons-jci-core.version>1.1</commons-jci-core.version>

		<!--TESTING-->
		<mockito.version>1.10.19</mockito.version>
		<junit.version>4.12</junit.version>
		<testng.version>6.9.10</testng.version>
		<extentreports.version>3.0.3</extentreports.version>
		
		<!-- parser-->
		<sdc-tosca-parser.version>1.1.32</sdc-tosca-parser.version>
		
		<!--JaCoCO -->
		<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
		<sonar.jacoco.reportPath>${project.basedir}/target/jacoco.exec</sonar.jacoco.reportPath>
		<sonar.jacoco.itReportPath>${project.basedir}/target/it-jacoco.exec</sonar.jacoco.itReportPath>
		<sonar.language>java</sonar.language>
		<sonar.version>${project.version}</sonar.version>

		<!--cassandra -->
		<cassandra.driver.version>3.0.0</cassandra.driver.version>
		<!-- maven central (Nexus) -->
		<nexus.id.release>nexus</nexus.id.release>
		<nexus.id.snapshot>nexus</nexus.id.snapshot>
		<!-- Sonar properties -->
		<sonar.sourceEncoding>${project.build.sourceEncoding}</sonar.sourceEncoding>
		<sonar.skipDesign>true</sonar.skipDesign>
		<sonar.projectBaseDir>${project.basedir}</sonar.projectBaseDir>
		<sonar.sources>.</sonar.sources>
		<sonar.exclusions>**/scripts/**/*</sonar.exclusions>
		<sonar.test.exclusions>**/test/**/*,**/tests/**/*</sonar.test.exclusions>
		<sonar.inclusions>app/**/*.js,server-mock/**/*.js,src/**/*.js,src/main/**/*.java</sonar.inclusions>
		<sonar.branch>${project.version}</sonar.branch>

		<!--nexus-->
		<nexus.proxy>https://nexus.onap.org</nexus.proxy>
		<sitePath>/content/sites/site/org/openecomp/sdc/${project.version}</sitePath>
		<staging.profile.id>176c31dfe190a</staging.profile.id>
		<!--maven-->
		<maven.build.timestamp.format>yyyyMMdd'T'HHmm</maven.build.timestamp.format>
	</properties>

	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.0.0-M1</version>
				<configuration>
					<failOnError>false</failOnError>
					<doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
					<docletArtifact>
						<groupId>org.umlgraph</groupId>
						<artifactId>umlgraph</artifactId>
						<version>5.6</version>
					</docletArtifact>
					<additionalparam>-views</additionalparam>
					<useStandardDocletOptions>true</useStandardDocletOptions>
				</configuration>
			</plugin>
		</plugins>
	</reporting>

	<build>
		<pluginManagement>
			<plugins>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.4</version>
					<dependencies>
						<dependency>
							<groupId>org.apache.maven.wagon</groupId>
							<artifactId>wagon-webdav-jackrabbit</artifactId>
							<version>2.10</version>
						</dependency>
					</dependencies>
				</plugin>


				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>2.6</version>
				</plugin>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>exec-maven-plugin</artifactId>
					<version>1.4.0</version>
				</plugin>
				<plugin>
					<groupId>org.sonarsource.scanner.maven</groupId>
					<artifactId>sonar-maven-plugin</artifactId>
					<version>3.0.2</version>
				</plugin>
			</plugins>
		</pluginManagement>

		<plugins>

			<!-- Staging Plugin -->
			<plugin>
				 <groupId>org.sonatype.plugins</groupId>
				 <artifactId>nexus-staging-maven-plugin</artifactId>
				 <version>1.6.7</version>
				 <extensions>true</extensions>
				 <configuration>
						 <nexusUrl>${nexus.proxy}</nexusUrl>
						 <stagingProfileId>${staging.profile.id}</stagingProfileId>
						 <serverId>ecomp-staging</serverId>
				 </configuration>
			</plugin>

			<plugin>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.19.1</version>
				<configuration>
					<systemPropertyVariables>
						<logback.configurationFile>src/test/resources/logback-test.xml</logback.configurationFile>
					</systemPropertyVariables>
				</configuration>
			</plugin>
			<!-- plugin for parsing the project version -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<version>1.8</version>
				<executions>
					<execution>
						<id>parse-version</id>
						<goals>
							<goal>parse-version</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Set the JDK compiler version. -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.5.1</version>
				<inherited>true</inherited>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>

			<!-- Java Code Coverage -->
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.7.1.201405082137</version>
				<inherited>True</inherited>
				<executions>
					<!-- Unit-Tests -->
					<execution>
						<id>prepare-agent</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
						<configuration>
							<destFile>${sonar.jacoco.reportPath}</destFile>
						</configuration>
					</execution>
					<execution>
						<id>report</id>
						<goals>
							<goal>report</goal>
						</goals>
						<configuration>
							<dataFile>${sonar.jacoco.reportPath}</dataFile>
							<outputDirectory>${project.basedir}/target/site/jacoco</outputDirectory>
						</configuration>
					</execution>

					<!-- Integration Tests (Only report goal) -->
					<execution>
						<id>report-integration</id>
						<goals>
							<goal>report-integration</goal>
						</goals>
						<configuration>
							<dataFile>${sonar.jacoco.itReportPath}</dataFile>
							<outputDirectory>${project.basedir}/target/site/it-jacoco</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
			
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<dependencies>
					<dependency>
						<groupId>org.apache.maven.wagon</groupId>
						<artifactId>wagon-webdav-jackrabbit</artifactId>
						<version>2.10</version>
					</dependency>
				</dependencies>
			</plugin>

			<!-- Set the deployment repositories properties. -->
			<plugin>
				<groupId>org.codehaus.gmaven</groupId>
				<artifactId>gmaven-plugin</artifactId>
				<version>1.4</version>
				<executions>
					<execution>
						<inherited>false</inherited>
						<phase>integration-test</phase>
						<goals>
							<goal>execute</goal>
						</goals>
						<configuration>
							<source>
								pom.properties['deploy.url']=
								pom.version.contains('-SNAPSHOT') ?
								project.distributionManagement.snapshotRepository.url :
								project.distributionManagement.repository.url;
								pom.properties['repo.id']= pom.version.contains('-SNAPSHOT') ?
								project.distributionManagement.snapshotRepository.id :
								project.distributionManagement.repository.id;
							</source>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- license plugin -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>license-maven-plugin</artifactId>
				<version>1.10</version>
				<configuration>
					<addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
					<processStartTag>============LICENSE_START=======================================================</processStartTag>
					<processEndTag>============LICENSE_END=========================================================</processEndTag>
					<sectionDelimiter>================================================================================</sectionDelimiter>
					<licenseName>apache_v2</licenseName>
					<inceptionYear>2017</inceptionYear>
					<organizationName>AT&amp;T Intellectual Property. All rights
						reserved.</organizationName>
					<projectName>SDC</projectName>
					<canUpdateCopyright>true</canUpdateCopyright>
					<canUpdateDescription>true</canUpdateDescription>
					<canUpdateLicense>true</canUpdateLicense>
					<emptyLineAfterHeader>true</emptyLineAfterHeader>
					<verbose>false</verbose>
					<includes>
						<include>**/*.java</include>
						<include>**/*.ts</include>
					</includes>
					<excludes>
						<exclude>**/*.d.ts</exclude>
					</excludes>
					<roots>
						<root>src</root>
						<root>app</root>
						<root>server-mock</root>
						<root>typings</root>
					</roots>
					<extraExtensions>
						<ts>java</ts>
					</extraExtensions>
				</configuration>
				<executions>
					<execution>
						<id>first</id>
						<goals>
							<goal>update-file-header</goal>
						</goals>
						<!--phase>process-sources</phase -->
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>all</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<modules>
				<module>build-tools</module>
				<module>onboarding</module>
				<module>security-utils</module>
				<module>common-app-api</module>
				<module>common-be</module>
				<module>catalog-dao</module>
				<module>catalog-model</module>
				<module>catalog-be</module>
				<module>asdctool</module>
				<module>catalog-ui</module>
				<module>catalog-fe</module>
				<module>asdc-tests</module>
				<module>test-apis-ci</module>
				<module>ui-ci</module>
				<module>sdc-os-chef</module>
			</modules>

		</profile>

		<profile>
			<id>catalog</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<modules>
				<module>security-utils</module>
				<module>common-app-api</module>
				<module>common-be</module>
				<module>catalog-dao</module>
				<module>catalog-model</module>
				<module>catalog-be</module>
				<module>asdctool</module>
				<module>catalog-ui</module>
				<module>catalog-fe</module>
				<module>asdc-tests</module>
				<module>test-apis-ci</module>
				<module>ui-ci</module>
			</modules>			
			
			<properties>
				<ecomp.version>1.2.7</ecomp.version>
				<artifact-generator-api.version>1710.0.0</artifact-generator-api.version>
				<artifact-generator-core.version>1710.0.0</artifact-generator-core.version>
				<dox-common-lib.version>1710.0.0</dox-common-lib.version>
				<sdc-tosca-parser.version>1.1.32</sdc-tosca-parser.version>
			</properties>
		</profile>

		<profile>
			<id>onboarding</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<modules>
				<module>build-tools</module>
				<module>onboarding</module>
			</modules>
		</profile>
	</profiles>

	<repositories>
		<!-- LF repositories -->
		<repository>
			<id>ecomp-releases</id>
			<name>Release Repository</name>
			<url>${nexus.proxy}/content/repositories/releases/</url>
		</repository>
		<repository>
			<id>ecomp-staging</id>
			<name>Staging Repository</name>
			<url>${nexus.proxy}/content/repositories/staging/</url>
		</repository>
		<repository>
			<id>ecomp-snapshots</id>
			<name>Snapshots Repository</name>
			<url>${nexus.proxy}/content/repositories/snapshots/</url>
		</repository>
		<repository>
			<id>ecomp-public</id>
			<name>Public Repository</name>
			<url>${nexus.proxy}/content/repositories/public/</url>
		</repository>
		<!-- LF repositories END-->
	</repositories>

	<distributionManagement>

		<repository>
			<id>ecomp-releases</id>
			<name>Release Repository</name>
			<url>${nexus.proxy}/content/repositories/releases/</url>
		</repository>
		<snapshotRepository>
			<id>ecomp-snapshots</id>
			<name>Snapshot Repository</name>
			<url>${nexus.proxy}/content/repositories/snapshots/</url>
		</snapshotRepository>
		<site>
			<id>ecomp-site</id>
			<url>dav:${nexus.proxy}${sitePath}</url>
		</site>
	</distributionManagement>
</project>