DrupalTesting: Java Development Environment

CMSAuto Development Environment: OS + Apps

  • OS
    • Win8
    • Linux Mint
  • JDK8
  • Eclipse + Plugins
  • Web Browsers
  • Selenium WebDriver
  • Excel
    • TestData
    • Test Case Management
  • NPP ( Text Editing )
  •  
  •  

 


CMSAuto Development Environment: EclipseIDE

  • JDK8x64
  • Eclipse Oxygen 3a (x64bit )
  • Plugins
    • DevStyle
    • TestNG ( Test Case Annotations & Test Listeners & Reporting )
    • Natural ( Cucumber BDD )
    • Maven ( Build / Dependency Manager )
    • JUnit ( Test Case Annotations& Unit Testing & Reporting )
  • Executables
    • ChromeDriver
    • IEServerDriver
    • FireFoxDriver
  • Maven POM Projects
    • log4j
    • JUnit 4.12
    • TestNG 6.9.9
    • ExtentReports 2.41.2
    • Selenium 3.11.0
    • MySQL Connector 6.0.5
    • JavaX 1.4.7
    • Apache POI 3.6
    • Cucumber 1.2.5
      • gherkin 2.12.2
    •  
  • Proxy Settings
    • settings.xml for EclipseIDE
    • Preferences > Networking > Proxy [ default / direct / manual ]
      • https
      • http
      • SOCKS

 


CMSAuto Development Environment: Maven POM Dependencies

  • log4j
  • JUnit 4.12
  • TestNG 6.9.9
    • ReportNG 1.1.4
    • guice 4.1.0
    • extentreports 2.41.2
    • selenium-java 3.11.0
    • mysql-connector-java 6.0.5
    • javax.mail 1.4.7
    •  
  • Apache POI
    • poi 3.6
    • poi-ooxml 3.6
    • poi-ooxml-schemas 3.6
    • dom4j 1.1
    • xmlbeans 2.3.0
  • Cucumber 1.2.5
    • cucumber-java 1.2.5
    • cucumber-core 1.2.5
    • cucumber-jvm 1.2.5
    • cucumber-jvm-deps 1.0.5
    • cucumber-reporting 3.10.0
    • gherkin 2.12.2
    • cucumber-junit 1.2.5
    • guava 25.1-jre
    • cucumber-picocontainer 1.2.5
    •  

 


Maven POM Deciphered

    <!-- Include the following dependencies -->
    <dependencies>

 

 

 


Log4j

<!-- log4j OLD -->
        <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
        </dependency>

 

 


JUnit ( Unit Test Runner + Cucumber Runner )

<!-- Junit 4.12 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

 


TestNG

  • TestNG Runner & Reporting Tools

<!-- TestNG -->

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.9.9</version>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/org.uncommons/reportng -->
        <dependency>
            <groupId>org.uncommons</groupId>
            <artifactId>reportng</artifactId>
            <version>1.1.4</version>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/com.google.inject/guice -->
        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>4.1.0</version>
        </dependency>
        
        <!-- com.relevantcodes/extentreports -->
        <!-- http://repo1.maven.org/maven2/com/relevantcodes/extentreports/2.41.2/ -->
        <dependency>
            <groupId>com.relevantcodes</groupId>
            <artifactId>extentreports</artifactId>
            <version>2.41.2</version>
        </dependency>

 


Selenium WebDriver

<!-- Selenium -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.11.0</version>
        </dependency>

 


MySQL Connector

        
<!-- mysql connector -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.5</version>
        </dependency>

 


JavaX Mail

<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>

 


Apache POI

  • Excel/Spreadsheet, XML, DOM Access Tools
<!-- Apache POI -->
        <!-- Dependency for POI API -->
        <!-- http://mvnrepository.com/artifact/org.apache.poi/poi -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.6</version>
        </dependency>

        <!-- http://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.6</version>
        </dependency>

         <!-- http://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>3.6</version>
        </dependency>

        <!-- http://mvnrepository.com/artifact/dom4j/dom4j -->
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.1</version>
        </dependency>

        <!-- xmlbeans -->
        <!-- http://repo1.maven.org/maven2/com/relevantcodes/extentreports/2.41.2/ -->
        <dependency>
            <groupId>org.apache.xmlbeans</groupId>
            <artifactId>xmlbeans</artifactId>
            <version>2.3.0</version>
        </dependency>

 


Cucumber

  • Cucumber is a BDD Plugin for Eclipse that works with 3 file types:
    • /Features/*.feature
    • stepDefinitions/*StepDefinitions.java
    • Runners/FeatureNameRunner.java
    •  
<!-- Cucumber -->
        <!-- Cucumber java -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>1.2.5</version>
            <scope>test</scope>
        </dependency>


        <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-core -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-core</artifactId>
            <version>1.2.5</version>
        </dependency>

        <!-- cucumber JVM -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-jvm</artifactId>
            <version>1.2.5</version>
            <type>pom</type>
        </dependency>


        <!-- Cucumber jvm dependencies -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-jvm-deps</artifactId>
            <version>1.0.5</version>
        </dependency>


        <!-- Cucumber Reporting -->
        <dependency>
            <groupId>net.masterthought</groupId>
            <artifactId>cucumber-reporting</artifactId>
            <version>3.10.0</version> <!-- 1.0.0 -->
        </dependency>


        <!-- Cucumber Gherkin -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>gherkin</artifactId>
            <version>2.12.2</version>
        </dependency>


        <!-- cucumber junit -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>1.2.5</version>
            <scope>test</scope>
        </dependency>


        <!-- Guava 25.1 - 20.0 missing com.google.common.util.concurrent.SimpleTimeLimiter.create -->
        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>25.1-jre</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-picocontainer -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-picocontainer</artifactId>
            <version>1.2.5</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

 


Maven POM: Other Dependencies Under Review

    <dependencies>

<!-- STORAGE  -->
        <!-- Selenium from Cucumber project <dependency> <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId> <version>3.5.3</version> </dependency> -->

        <!--  downgrading from 2.11.0 not wired up for this project -->
        <!-- log4j2 NEW
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.11.0</version>
        </dependency>
        -->
        <!-- log4j2 NEW -->

        <!-- Junit version? -->
        <!-- <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId>
            <version>${junit.jupiter.version}</version> <scope>test</scope> </dependency> -->

        <!-- sourceDirectory>src</sourceDirectory -->
            </dependencies>

 


Maven POM (Complete)

<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>com.uc</groupId>
    <artifactId>DataDrivenFramework</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <properties>
        <jdk.level>1.8</jdk.level>
        <jre.level>1.8</jre.level>
        <junit.jupiter.version>5.2.0</junit.jupiter.version>
        <junit.platform.version>1.2.0</junit.platform.version>
    </properties>
    <build>

    <!-- log4j resource config -->
    <testResources>
        <testResource>
            <directory>src/test/resources/properties</directory>
            <includes>
                <include>log4j.properties</include>
            </includes>
        </testResource>
    </testResources>
    
    

        <pluginManagement>
            <plugins>
            </plugins>
        </pluginManagement>

        <plugins>
            <!-- Compiler plug-in -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

<!-- Removed this duplicate entry.. keeping here until certain its not needed -->
            <!-- plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.stack.JarCreation.Main</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin-->
            
            
            
            <!-- Jar Creator -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>attached</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                            <archive>
                                <manifest>
                                    <mainClass>com.stack.JarCreation.Main</mainClass>
                                </manifest>
                            </archive>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- Below plug-in is used to TestNG execute tests -->
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <forkCount>0</forkCount>
                    <testFailureIgnore>false</testFailureIgnore>
                    <suiteXmlFiles>
                        <!-- suiteXmlFile>testng.xml</suiteXmlFile-->
                        <suiteXmlFile>src/test/resources/runner/testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                    <testFailureIgnore>true</testFailureIgnore>
                    <properties>
                        <property>
                            <name>testnames</name>
                            <value>"Simple Test"</value>
                        </property>
                    </properties>
                </configuration>
            </plugin>

            <!-- Javadoc Generation -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <show>private</show>
                    <nohelp>true</nohelp>
                </configuration>
            </plugin>
        </plugins>

    </build>

    <!-- Include the following dependencies -->
    <dependencies>

        <!-- log4j OLD -->
        <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
        </dependency>

        <!-- Junit 4.12 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

<!-- TestNG -->
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.9.9</version>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/org.uncommons/reportng -->
        <dependency>
            <groupId>org.uncommons</groupId>
            <artifactId>reportng</artifactId>
            <version>1.1.4</version>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/com.google.inject/guice -->
        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>4.1.0</version>
        </dependency>
        
        <!-- com.relevantcodes/extentreports -->
        <!-- http://repo1.maven.org/maven2/com/relevantcodes/extentreports/2.41.2/ -->
        <dependency>
            <groupId>com.relevantcodes</groupId>
            <artifactId>extentreports</artifactId>
            <version>2.41.2</version>
        </dependency>


        <!-- Selenium -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.11.0</version>
        </dependency>

        
        
        <!-- mysql connector -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.5</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>


<!-- Apache POI -->
        <!-- Dependency for POI API -->
        <!-- http://mvnrepository.com/artifact/org.apache.poi/poi -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.6</version>
        </dependency>

        <!-- http://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.6</version>
        </dependency>
        <!-- http://mvnrepository.com/artifact/dom4j/dom4j -->
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.1</version>
        </dependency>

        <!-- xmlbeans -->
        <!-- http://repo1.maven.org/maven2/com/relevantcodes/extentreports/2.41.2/ -->
        <dependency>
            <groupId>org.apache.xmlbeans</groupId>
            <artifactId>xmlbeans</artifactId>
            <version>2.3.0</version>
        </dependency>

        <!-- Apache POI -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.6</version>
        </dependency>
        <!-- http://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>3.6</version>
        </dependency>


<!-- Cucumber -->
        <!-- Cucumber java -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>1.2.5</version>
            <scope>test</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-core -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-core</artifactId>
            <version>1.2.5</version>
        </dependency>

        <!-- cucumber JVM -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-jvm</artifactId>
            <version>1.2.5</version>
            <type>pom</type>
        </dependency>

        <!-- Cucumber jvm dependencies -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-jvm-deps</artifactId>
            <version>1.0.5</version>
        </dependency>

        <!-- Cucumber Reporting -->
        <dependency>
            <groupId>net.masterthought</groupId>
            <artifactId>cucumber-reporting</artifactId>
            <version>3.10.0</version> <!-- 1.0.0 -->
        </dependency>

        <!-- Cucumber Gherkin -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>gherkin</artifactId>
            <version>2.12.2</version>
        </dependency>

        <!-- cucumber junit -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>1.2.5</version>
            <scope>test</scope>
        </dependency>

        <!-- Guava 25.1 - 20.0 missing com.google.common.util.concurrent.SimpleTimeLimiter.create -->
        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>25.1-jre</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-picocontainer -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-picocontainer</artifactId>
            <version>1.2.5</version>
            <scope>test</scope>
        </dependency>


<!-- STORAGE  -->
        <!-- Selenium from Cucumber project <dependency> <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId> <version>3.5.3</version> </dependency> -->

        <!--  downgrading from 2.11.0 not wired up for this project -->
        <!-- log4j2 NEW
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.11.0</version>
        </dependency>
        -->
        <!-- log4j2 NEW -->

        <!-- Junit version? -->
        <!-- <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId>
            <version>${junit.jupiter.version}</version> <scope>test</scope> </dependency> -->

        <!-- sourceDirectory>src</sourceDirectory -->
        
    </dependencies>
</project>

 


 

 

 

Tags