无法通过Maven项目执行黄瓜测试

时间:2021-03-13 19:42:58

标签: selenium maven junit cucumber testng

pom 文件、运行文件和控制台输出的详细信息如下

Pom.xml 文件 - 描述使用的依赖和插件

<dependencies>
      <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.2</version>
      </dependency>
      
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.5</version>
    </dependency>
    
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
    </dependency>
    
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.9</version>
    </dependency>
    
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>ooxml-schemas</artifactId>
        <version>1.4</version>
    </dependency>
        
    <dependency>
        <groupId>org.dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>2.1.1</version>
    </dependency>
    
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.9.10</version>
    </dependency>
    
    <dependency>
        <groupId>com.vimalselvam</groupId>
        <artifactId>cucumber-extentsreport</artifactId>
        <version>3.1.1</version>
    </dependency>
    
    <dependency>
        <groupId>com.aventstack</groupId>
        <artifactId>extentreports</artifactId>
        <version>3.1.1</version>
    </dependency>
    <dependency>
        <groupId>net.masterthought</groupId>
        <artifactId>cucumber-reporting</artifactId>
        <version>3.12.0</version>
    </dependency>
    
    <dependency>
        <groupId>io.github.bonigarcia</groupId>
        <artifactId>webdrivermanager</artifactId>
        <version>4.2.2</version>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>6.9.1</version>
        <scope>test</scope>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-core -->
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-core</artifactId>
        <version>6.9.1</version>
    </dependency>
    
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>6.9.1</version>
    </dependency>
    
    <dependency>
         <groupId>io.cucumber</groupId>
         <artifactId>gherkin</artifactId>
         <version>5.1.0</version>
    </dependency>
    
    <dependency>
         <groupId>io.cucumber</groupId>
         <artifactId>cucumber-jvm</artifactId>
         <version>6.9.1</version>
         <type>pom</type>
    </dependency>
    <dependency>
         <groupId>io.cucumber</groupId>
         <artifactId>cucumber-jvm-deps</artifactId>
         <version>1.0.6</version>
    </dependency>
    
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-testng</artifactId>
        <version>6.9.1</version>
    </dependency>
    
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180130</version>
    </dependency>
    
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>26.0-jre</version>
    </dependency>
    
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.7</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.12.1</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.12.1</version>
    </dependency>
    
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.12.1</version>
    </dependency>
    </dependencies>
  
  <build>
  <resources>
     <resource>
       <directory>src/test/resources</directory>
       <filtering>true</filtering>
     </resource>
   </resources>
        <plugins>
          <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M5</version>
                <configuration> 
                <testSourceDirectory>Adminportal/src/test/java/com/vnext/Testrunner</testSourceDirectory>
                    <testFailureIgnore>true</testFailureIgnore>
                    <includes>
                        <include>**/CucumberRunnerTest.java</include>
                    </includes>
                </configuration>
            </plugin>
        </plugins>
  </build>

Cucumber Runner 文件

@RunWith(Cucumber.class)
@CucumberOptions(features = {"/src/test/resource/Features"}
        ,glue={"com.vnext.stepDefinition"}, tags=  "@Login", dryRun=true, monochrome=true
        , plugin = {"pretty", "com.cucumber.listener.ExtentCucumberFormatter:target/cucumber-reports/report.html" }
        )

public class CucumberRunnerTest {
    
    public static Properties testProp;
    public static String driverPath;
    public static String browser;
    public static String environment;
    public static LinkedHashMap<String, String> envProperty = new LinkedHashMap<>();
    public static JsonReader jr;
    private static DriverLaunch  dl= new DriverLaunch();
    String envRootDir = System.getProperty("user.dir");
    
    
    @BeforeClass
    public void suitSetup() throws Exception{
        testProp = PropertyFileUtils.readProperty(envRootDir+"/src/test/resource/Properties/Test.properties");
        driverPath= testProp.getProperty("driverPath");
        browser= testProp.getProperty("browser");
        environment = testProp.getProperty("environment");
        System.out.println("Driver Path : "+driverPath);
        System.out.println("Browser : "+browser);
        jr= new JsonReader();
        envProperty=JsonReader.jsonRead(environment, envRootDir+"/src/test/resource/DBSite/DbSiteData.json");
        dl.launchDriver(browser, driverPath);
    }

    @AfterClass
    public void teardown(){
        dl.tearDown();
        Reporter.loadXMLConfig(new File("config/report.xml"));
    }
    
    @AfterSuite
    public void endConnection(){
    }

控制台输出

[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.vnext.Testrunner.CucumberRunnerTest
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.561 s - in com.vnext.Testrunner.CucumberRunnerTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.954 s
[INFO] Finished at: 2021-03-14T00:44:13+05:30
[INFO] Final Memory: 39M/497M
[INFO] ------------------------------------------------------------------------

代码没有被执行。 Maven 忽略了功能文件 .请帮我解决问题。我尝试评论 Runwith 标签,但也得到了相同的结果。

请帮忙!

2 个答案:

答案 0 :(得分:1)

你的 pom.xml 文件中有不少不兼容和不必要的依赖项。我建议你从启动项目开始:github.com/cucumber/cucumber-java-skeleton/

答案 1 :(得分:0)

创建一个单独的junit runner类:

package options;

import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
import org.junit.runner.RunWith;


@RunWith(Cucumber.class)
@CucumberOptions(
        plugin = "pretty",
        glue = "stepdefs",   // the package containing step definitions
        features = "src/test/features")   //the folder where you have your featurefile
public class CucumberTests {
}

现在只需运行:

mvn test