maven - Cucumber - java.lang.NoClassDefFoundError -


i'm learning cucmber , i'm facing following errors while running test:

java.lang.noclassdeffounderror: cucumber/io/resourceloader      @ java.lang.class.getdeclaredconstructors0(native method)     @ java.lang.class.privategetdeclaredconstructors(class.java:2671)     @ java.lang.class.getconstructor0(class.java:3075)     @ java.lang.class.getconstructor(class.java:1825)     @ org.junit.internal.builders.annotatedbuilder.buildrunner(annotatedbuilder.java:104)     @ org.junit.internal.builders.annotatedbuilder.runnerforclass(annotatedbuilder.java:86)     @ org.junit.runners.model.runnerbuilder.saferunnerforclass(runnerbuilder.java:59)     @ org.junit.internal.builders.alldefaultpossibilitiesbuilder.runnerforclass(alldefaultpossibilitiesbuilder.java:26)     @ org.junit.runners.model.runnerbuilder.saferunnerforclass(runnerbuilder.java:59)     @ org.junit.internal.requests.classrequest.getrunner(classrequest.java:33)     @ com.intellij.junit4.junit4ideatestrunner.startrunnerwithargs(junit4ideatestrunner.java:49)     @ com.intellij.rt.execution.junit.ideatestrunner$repeater.startrunnerwithargs(ideatestrunner.java:51)     @ com.intellij.rt.execution.junit.junitstarter.preparestreamsandstart(junitstarter.java:237)     @ com.intellij.rt.execution.junit.junitstarter.main(junitstarter.java:70)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:498)     @ com.intellij.rt.execution.application.appmain.main(appmain.java:147) caused by: java.lang.classnotfoundexception: cucumber.io.resourceloader     @ java.net.urlclassloader.findclass(urlclassloader.java:381)     @ java.lang.classloader.loadclass(classloader.java:424)     @ sun.misc.launcher$appclassloader.loadclass(launcher.java:331)     @ java.lang.classloader.loadclass(classloader.java:357)     ... 19 more 

files:

  1. src/test/java/annotation/runtest.java
  2. src/test/java/annotation/annotation.java
  3. src/test/java/annotation/annotation.feature
  4. pom.xml

src/test/java/annotation/runtest.java

package annotation;  import org.junit.runner.runwith; import cucumber.junit.cucumber;  @runwith(cucumber.class) @cucumber.options(         format = {"pretty", "html:target/cucumber"},         features = {"src/test/java/annotation/annotation.feature"} )  public class runtest { } 

src/test/java/annotation/annotation.java

package annotation;  import org.openqa.selenium.by; import org.openqa.selenium.webdriver; import org.openqa.selenium.chrome.chromedriver;  import cucumber.annotation.en.given; import cucumber.annotation.en.then; import cucumber.annotation.en.when;  public class annotation {     webdriver driver = null;     @given("^i on facebook login page$")      public void gotofacebook() {         driver = new chromedriver();         driver.navigate().to("https://www.facebook.com/");     }      @when("^i enter username \"(.*)\"$")     public void enterusername(string arg1) {         driver.findelement(by.id("email")).sendkeys(arg1);     }      @when ("^i enter password \"(.*)\"$")     public void enterpassword(string arg1) {         driver.findelement(by.id("pass")).sendkeys(arg1);         driver.findelement(by.id("u_0_v")).click();     }      @then("^login should fail$")     public void checkfail() {         if(driver.getcurrenturl().equalsignorecase(                 "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){             system.out.println("test1 pass");         } else {             system.out.println("test1 failed");         }         driver.close();     }      @then("^relogin option should available$")     public void checkrelogin() {         if(driver.getcurrenturl().equalsignorecase(                 "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){             system.out.println("test2 pass");         } else {             system.out.println("test2 failed");         }         driver.close();     } } 

src/test/java/annotation/annotation.feature

feature: annotation #this how background can used eliminate duplicate steps    background:   user navigates facebook given   on facebook login page  #scenario ,   scenario:     when enter username "tom"     , enter password "jerry"     login should fail  #scenario   scenario:     when enter username "tom"     , enter password "jerry"     login should fail     relogin option should available 

pom.xml

<?xml version="1.0" encoding="utf-8"?> <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>nice.git.sample</groupid>     <artifactid>hello-world</artifactid>     <version>1.0-snapshot</version>      <dependencies>          <dependency>             <groupid>org.seleniumhq.selenium</groupid>             <artifactid>selenium-java</artifactid>             <version>3.0.1</version>         </dependency>         <dependency>             <groupid>info.cukes</groupid>             <artifactid>cucumber-java</artifactid>             <version>1.2.5</version>             <scope>test</scope>         </dependency>         <dependency>             <groupid>info.cukes</groupid>             <artifactid>cucumber-core</artifactid>             <version>1.2.5</version>             <scope>test</scope>         </dependency>         <dependency>             <groupid>info.cukes</groupid>             <artifactid>cucumber-junit</artifactid>             <version>1.2.5</version>             <scope>test</scope>         </dependency>         <dependency>             <groupid>junit</groupid>             <artifactid>junit</artifactid>             <version>latest</version>             <scope>test</scope>         </dependency>         <dependency>             <groupid>org.seleniumhq.selenium</groupid>             <artifactid>selenium-api</artifactid>             <version>2.47.1</version>             <scope>test</scope>         </dependency>         <dependency>             <groupid>info.cukes</groupid>             <artifactid>cucumber-junit</artifactid>             <version>1.0.2</version>             <scope>test</scope>         </dependency>         <dependency>             <groupid>info.cukes</groupid>             <artifactid>cucumber-java</artifactid>             <version>1.0.2</version>             <scope>test</scope>         </dependency>         <dependency>             <groupid>info.cukes</groupid>             <artifactid>cucumber-core</artifactid>             <version>1.1.8</version>         </dependency>        </dependencies>  </project> 

duplicated artifact in pom.xml. remove old version , update project

cucumber-core 

Comments

Popular posts from this blog

inversion of control - Autofac named registration constructor injection -

verilog - Systemverilog dynamic casting issues -

ios - Change Storyboard View using Seague -