2

EDIT: I've uploaded the project to github for anyone who'd like to take a look https://github.com/hfunsh/test-automation.git

I have written a few tests in Selenium using Intellij, the scripts run successfully in the IDE, but when I try to run them from the console I get a "BUILD SUCCESSFUL" message but no test execution.

I'm able to run other Maven Junit projects from the console, so I know this is most likely a configuration issue with my pom file, but I can't figure it out.

Here is an example of one of the Java class names (containing the word Test)

/Users/ser/IdeaProjects/SeleniunTrainingII/src/test/java/com/selenium/tests/junit/tests/TestLoginAmazon.java

2nd EDIT: I've now run "mvn clean verify" as suggested

    INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Selenium tests project 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ selenium-app ---
[INFO] 
[INFO] --- maven-failsafe-plugin:2.18.1:integration-test (default) @ selenium-app ---
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.jar
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-descriptor/2.2.1/maven-plugin-descriptor-2.2.1.jar
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.jar
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-project/2.2.1/maven-project-2.2.1.jar
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-descriptor/2.2.1/maven-plugin-descriptor-2.2.1.jar (39 KB at 32.7 KB/sec)
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.jar (13 KB at 10.2 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-profile/2.2.1/maven-profile-2.2.1.jar
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar (48 KB at 40.5 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-registry/2.2.1/maven-plugin-registry-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.jar (79 KB at 64.3 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-project/2.2.1/maven-project-2.2.1.jar (153 KB at 123.5 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-core/2.2.1/maven-core-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-profile/2.2.1/maven-profile-2.2.1.jar (35 KB at 27.6 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-parameter-documenter/2.2.1/maven-plugin-parameter-documenter-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.jar (66 KB at 52.7 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-repository-metadata/2.2.1/maven-repository-metadata-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-registry/2.2.1/maven-plugin-registry-2.2.1.jar (30 KB at 23.1 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-error-diagnostics/2.2.1/maven-error-diagnostics-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.jar (86 KB at 66.2 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-monitor/2.2.1/maven-monitor-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-repository-metadata/2.2.1/maven-repository-metadata-2.2.1.jar (26 KB at 19.3 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-parameter-documenter/2.2.1/maven-plugin-parameter-documenter-2.2.1.jar (22 KB at 16.6 KB/sec)
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-error-diagnostics/2.2.1/maven-error-diagnostics-2.2.1.jar (13 KB at 9.6 KB/sec)
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-monitor/2.2.1/maven-monitor-2.2.1.jar (11 KB at 7.6 KB/sec)
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.jar (37 KB at 26.9 KB/sec)
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-core/2.2.1/maven-core-2.2.1.jar (174 KB at 126.2 KB/sec)
[INFO] No tests to run.
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! The file encoding for reports output files should be provided by the POM property ${project.reporting.outputEncoding}.
[INFO] 
[INFO] --- maven-failsafe-plugin:2.18.1:verify (default) @ selenium-app ---
[INFO] No tests to run.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.536 s
[INFO] Finished at: 2016-01-14T10:10:47-05:00
[INFO] Final Memory: 11M/108M

EDIT: I've now added both the maven surefire AND failsafe plugins to my pom and it still isn't working.

Here is what my updated file looks like

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.selenium.test</groupId>
  <artifactId>selenium-app</artifactId>
  <packaging>pom</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>Selenium tests project</name>
  <description>Web Autotests simple project.</description>
  <url>http://maven.apache.org</url>

  <properties>
    <junit.version>4.11</junit.version>
    <testng.version>6.8.17</testng.version>
    <selenium.version>2.45.0</selenium.version>
    <compiler.version>1.7</compiler.version>
  </properties>


  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>${compiler.version}</source>
          <target>${compiler.version}</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19.1</version>
        <configuration>
          <systemPropertyVariables>
            <propertyName>firefox</propertyName>
          </systemPropertyVariables>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.18.1</version>
        <executions>
          <execution>
            <configuration>
              <forkCount>3</forkCount>
              <reuseForks>true</reuseForks>
              <argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
              <testFailureIgnore>true</testFailureIgnore>
              <includes>
                <includesFile>**/*Test.java</includesFile>
              </includes>
            </configuration>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
    </dependency>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>${testng.version}</version>
    </dependency>
    <dependency>
      <groupId>xml-apis</groupId>
      <artifactId>xml-apis</artifactId>
      <version>1.4.01</version>
    </dependency>
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>${selenium.version}</version>
    </dependency>
  </dependencies>
</project>

Here is the output of my console as well as the POM file after running "mvn clean test" from the console.

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] --------------------------------------------------------------
[INFO] Building Selenium tests project 1.0-SNAPSHOT
[INFO] --------------------------------------------------------------
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ selenium-app 
[INFO] Deleting   /Users/user/IdeaProjects/SeleniumTraining/target
[INFO] BUILD SUCCESS
[INFO] --------------------------------------------------------------    
[INFO] Total time: 0.350 s
[INFO] Finished at: 2016-01-13T17:07:22-05:00
[INFO] Final Memory: 6M/77M
[INFO] ------------------------

And my pom:

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.selenium.test</groupId> 
    <artifactId>selenium-app</artifactId> 
    <packaging>pom</packaging> 
    <version>1.0-SNAPSHOT</version>  
    <name>Selenium tests project</name> 
    <description>Web Autotests simple project.</description> 
    <url>http://maven.apache.org</url>  
    <properties> 
        <junit.version>4.12</junit.version> 
        <testng.version>6.8.17</testng.version> 
        <selenium.version>2.45.0</selenium.version> 
        <compiler.version>1.7</compiler.version>
    </properties>  
    <build> 
        <plugins> 
            <plugin> 
                <groupId>org.apache.maven.plugins</groupId> 
                <artifactId>maven-compiler-plugin</artifactId> 
                <version>3.1</version> 
                <configuration> 
                    <source>1.8</source> 
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>  
    <dependencies> 
        <dependency> 
            <groupId>junit</groupId> 
            <artifactId>junit</artifactId> 
            <version>4.12</version>
        </dependency> 
        <dependency> 
            <groupId>org.testng</groupId> 
            <artifactId>testng</artifactId> 
            <version>${testng.version}</version>
        </dependency> 
        <dependency> 
            <groupId>xml-apis</groupId> 
            <artifactId>xml-apis</artifactId> 
            <version>1.4.01</version>
        </dependency> 
        <dependency> 
            <groupId>org.seleniumhq.selenium</groupId> 
            <artifactId>selenium-java</artifactId> 
            <version>2.48.0</version>
        </dependency>
    </dependencies>
</project> 
HGF
  • 51
  • 1
  • 2
  • 7
  • why maven command are you executing to get that output? Did you just execute mvn clean? – A_Di-Matteo Jan 13 '16 at 22:47
  • I ran "mvn clean test". – HGF Jan 13 '16 at 22:49
  • which folder contains your selenium tests? – eis Jan 13 '16 at 22:54
  • The tests are stored in /Users/user/IdeaProjects/SeleniumTraining/ – HGF Jan 13 '16 at 22:55
  • @user2712611, This is most likely due to your directory structure. Maven uses an arbitrary directory structure. src/main/java is your main java code src/test/java is your tests. Maven will read this directory when executing mvn test by default. – sasankad Jan 13 '16 at 23:03
  • Thanks, I'm aware of this, and all my tests are stored under test – HGF Jan 13 '16 at 23:06
  • Where under test? Can you add your directory structure to your question? It does seem like the most likely cause of the problem. – Paul Hicks Jan 14 '16 at 00:47
  • Are'nt you missing the definition of the `selenium-maven-plugin` ? [This](https://books.sonatype.com/mcookbook/reference/ch08s02.html) is the official documentation of the company behind maven on how to run selenium tests with maven. – Hendrik Jander Jan 14 '16 at 00:54
  • You don't _need_ the selenium plugin to run the tests. That just looks after setting up the Selenium server _if you want to hand that off from the test runner_. Many people prefer to keep that within Java-land and do it from a top-level suite @BeforeClass, a test Rule, or similar. Using the plugin for this can be counter-productive if you also like to run your tests directly from certain IDEs. – Paul Hicks Jan 14 '16 at 01:02
  • @PaulHicks Here is an example of one of the files /Users/ser/IdeaProjects/SeleniunTrainingII/src/test/java/com/selenium/tests/junit/tests/TestLoginAmazon.java – HGF Jan 14 '16 at 01:50
  • That looks fine. Assuming the class file is built to the target directory, that should be good. Next thing to look at would be starting the selenium server. Does your test (or suite or Rule or...) start a suitable driver such as FirefoxDriver? – Paul Hicks Jan 14 '16 at 02:55
  • Yes, I'm using Chromedriver and start a new instance with each test. The tests run properly when executed through the Intellij IDE. private WebDriver driver; driver = new ChromeDriver(); – HGF Jan 14 '16 at 14:01

6 Answers6

2

you need to add either maven-surefire-plugin or maven-failsafe-plugin to your POM and then run mvn clean test command and tests should start executing

Sample excerpt:

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.18.1</version>
                <executions>
                    <execution>
                        <configuration>
                            <forkCount>3</forkCount>
                            <reuseForks>true</reuseForks>
                            <argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
                            <testFailureIgnore>true</testFailureIgnore>
                            <includes>
                                <includesFile>**/*Test.java</includesFile>
                            </includes>
                        </configuration>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

EDIT: Your package name in the TestLogin.java was wrong. EDIT: Also your packaging in POM.xml is set to pom..You need to set it to jar

Mrunal Gosar
  • 4,595
  • 13
  • 48
  • 71
  • Thanks, I've added both plugins and neither worked. I've posted my updated pom file in the original post – HGF Jan 14 '16 at 14:35
  • apologies..actually what i meant is you need to include any one of them and it seems you haven't replaced the includes tag with the relevant file name of the test.. also what maven goals are you running? – Mrunal Gosar Jan 14 '16 at 14:50
  • I initially added each plugin individually, before deciding to try both at the same time. I also made sure my class file name matched the pattern in the includes tag (i.e it ends with Test.java). I don't know anything about maven goals unfortunately. – HGF Jan 14 '16 at 14:55
  • I attempted "mvn clean test" and "mvn test". Thanks – HGF Jan 14 '16 at 14:58
  • your test class name is "TestLoginAmazon" but your pattern in POM is *Test.java which will not match. also try mvn clean verify – Mrunal Gosar Jan 14 '16 at 15:02
  • I've actually created a new project and class file since posting that comment last night. I'm no longer using that file, my new file is named ChromeDriverTest.java – HGF Jan 14 '16 at 15:08
  • I also posted my results from running mvn clean test......of particular interest is the line "no test to run" – HGF Jan 14 '16 at 15:19
  • ok..do one thing add that to github and share the url..i'll checkout the project and see where things have gone wrong. – Mrunal Gosar Jan 14 '16 at 16:11
  • I've found one issue here check package name in https://github.com/hfunsh/test-automation/blob/master/SeleniunTrainingII/src/test/java/com/selenium/tests/junit/TestLogin.java it should be "com.selenium.tests.junit" as against "com.selenium.tests.junit.tests" – Mrunal Gosar Jan 15 '16 at 09:02
  • yep successfully able to run TestLogin after that change – Mrunal Gosar Jan 15 '16 at 09:06
  • Your packaging is also set to pom in POM.xml set it to jar – Mrunal Gosar Jan 15 '16 at 09:16
  • Changing the package name didn't work, but changing the pom to jar did. Thank you so much for your help! – HGF Jan 15 '16 at 15:37
  • But is there a way to make it work with packaging of `pom` since my project needs it (multi-module project) ? – Frederic Nov 17 '21 at 21:44
2

i have faced the same issue but it is resolved. Steps i have changed:

Step1: our Test name should end with "Test".

Step2: We should check the Properties of our project that should include M2_REPO

SelectProject in eclipse right click->Properties->Java BuildPath->Libraries

check the availability of the M2_REPO, if it is not there create a variable with that name, give the local m2 directory path.

and click on Apply and Ok.

check in the local machine for m2 folder and paste the path over here.

Step3: right click on the project ->Maven->UpdateProject.

Step4: right click on the project-> RunAs-> Maven Test.

saritha
  • 21
  • 1
1

Please make sure that your test directory is included in pom.xml file

<build>
    <testSourceDirectory>your_test_source_directory</testSourceDirectory>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19.1</version>
        <configuration>
            <testSourceDirectory>${project.build.testSourceDirectory}</testSourceDirectory>                      
            <suiteXmlFiles>
                <suiteXmlFile>testng.xml</suiteXmlFile>
            </suiteXmlFiles> 
            <includes>
            <include>**.java</include>
            </includes>
         </configuration>
     </plugin>
</build>
shakun tyagi
  • 107
  • 7
1

I am new to maven and automation, and I faced this same issue. The "TESTS" were not getting executed. However, to resolve this issue you just need to prefix your package name with 'com.packt.'

anonymous
  • 11
  • 2
1

Using command prompt, I have same problem i.e. only Maven BUILD SUCCESSFUL but no tests executed in Selenium.

As my all Test classes name under (src/test/java) is not end with 'Test'.

Ex. Problematic Test Class Name - AppiumTest02.java, RESTAPITest02.java etc.

I changed my all Test class name as ending with 'Test'.

Correct Test Class Name - AppiumTest.java, RESTAPITest.java etc.

Make sure that our Test class name should end with "Test".

After changing the Test name it was resolved. Please try the same to resolved this problem.

0

Add maven-surefire-plugin to your pom to trigger testng runs. You can get more information on the maven surefire plugin in this documentation link.

Sample plugin entry in pom:

<plugins>
    [...]
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19.1</version>
        <configuration>
          <systemPropertyVariables>
            <propertyName>firefox</propertyName>
          </systemPropertyVariables>
        </configuration>
      </plugin>
    [...]
</plugins>
parishodak
  • 4,506
  • 4
  • 34
  • 48