我是自动化框架的新手,正在尝试从jar文件中运行Cucumber项目。对于那个在Eclipse中的行家,“安装”生成了罐子,当我尝试执行获取cucumber / api / cli / Main错误时。
任何帮助将不胜感激。
C:\ Users \ sadakarp \ eclipse-workspace \ Jaspersoft Automation \ target> java -jar Jaspersoft_Automation-0.0.1-SNAPSHOT.jar
线程主java.lang.NoClassDefFoundError中的异常:cumcum / api / cli / Main 在com.sadakar.selenium.common.BasePage.main(BasePage.java:46)
原因:java.lang.ClassNotFoundException:cucumber.api.cli.Main
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
BasePage.java
package com.sadakar.selenium.common;
导入org.junit.runner.JUnitCore;
导入org.openqa.selenium.WebDriver;
公共类BasePage {
public static WebDriver driver;
public static void main(String args[]) throws Throwable{
try {
String[] arguments = {"--features","classpath:features",
"--tags","@ValidLogin",
"--glue","com.sadakar.cucumber.stepdefinitions/",
"--glue","com.sadakar.cucumber.common",
"--plugin","pretty",
"--plugin","json:target/cucumber-reports/Cucumber.json",
"--plugin", "html:target/cucumber-reports"
};
cucumber.api.cli.Main.main(arguments);
}
catch(Exception e) {
System.out.println("Main method exception");
}
} }
CucumberRunner.java
package com.sadakar.cucumber.runner;
导入org.junit.runner.RunWith;
导入cumul.api.CucumberOptions;
导入cumul.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions ( features =“ classpath:features”, // tags =“ @ ValidLogin,@ InvalidLogin”,
tags="@ValidLogin",
glue={"com.sadakar.cucumber.stepdefinitions/","com.sadakar.cucumber.common"},
plugin = { "pretty", "json:target/cucumber-reports/Cucumber.json",
"junit:target/cucumber-reports/Cucumber.xml",
"html:target/cucumber-reports"},
monochrome = true
) 公共类CucumberRunner {
}
pom.xml依赖
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-core</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-picocontainer</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
Plugins used
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.sadakar.selenium.common.BasePage</mainClass>
</manifest>
</archive>
</configuration>
</plugin>