当前位置: 首页 > 知识库问答 >
问题:

执行TestRunner类时发生初始化错误

章锦
2023-03-14

当我尝试运行testRunner.java时,我会看到以下错误:

initializationError(0.000秒)

java.lang.IllegalArgumentException:baseDir必须存在:C:\com\newtour\qa\features at io.cucumber.core.resource.pathscanner.findResourcesforPath(pathscanner.java:42),at io.cucumber.core.resource.pathscanner.findResourcesforURI(pathscanner.java:26),at io.cucumber.core.resource.resource.resourcescanner.findResourcesforURI(在io.cucumber.core.runtime.featurepathfeaturesupplier.get(featurepathfeaturesupplier.java:46)在io.cucumber.junit.cucumber.(cucumber.java:156)在java.base/jdk.internal.reflect.nativeconstructoraccessorimpl.newinstance0(原生方法)在java.base/jdk.internal.reflect.nativeconstructoraccessorimpl.newinstance(委托ConstructorAccessorImpl。java:45)在java.base/java.lang.reflect.constructor.newinstanceWithCaller(constructor.java:500)在java.base/java.lang.reflect.constructor.newInstance(constructor.java:481)在org.junit.internal.builders.annotatedBuilder.java:104)在org.junit.internal.builders.annotatedBuilder.buildrunner(annotatedBuilder.java:104)defaultPossibilitiesBuilder.java:26)在org.junit.runners.model.runnerBuilder.saferRunnerForClass(RunnerBuilder.java:59)在org.junit.internal.requests.classRequest.getRunner(ClassRequest.java:33)在org.eclipse.jdt.internal.junit4.runner.junit4TestLoader.java:90)在测试(JUnit4TestLoader.java:49)在org.eclipse.jdt.internal.junit.runner.remotetestrunner.java:525)在org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtest(remotetestrunner.java:763),在org.eclipse.jdt.internal.junit.runner.rometestrunner.java:763),在org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtest(

package com.newtours.qa.stepdefinition;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import io.cucumber.java.en.And;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.When;

public class Login
{
    WebDriver driver;
    String expectedTitle = "ToolsQA – Demo Website to Practice Automation – Demo Website to Practice Automation";

    @Given("user is already on login page")
    public void user_is_already_on_login_page() throws Throwable
    {
        System.setProperty("webdriver.chrome.driver", "..\\CucumberMavenProject\\Drivers\\chromedriver.exe");
        driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.get("https://www.phptravels.org/clientarea.php");
        System.out.println("User navigates to URL");
        throw new io.cucumber.java.PendingException();
    }

    @And("username and password are entered")
    public void username_and_password_are_entered() throws Throwable
    {
        //String actualtitle = driver.getTitle();
        driver.findElement(By.cssSelector("#inputEmail")).sendKeys("abe");
        driver.findElement(By.cssSelector("#inputPassword")).sendKeys("aaa");
        System.out.println("User enters login details ");
        throw new io.cucumber.java.PendingException();  
    }
    @When("user clicks on signin button")
    public void user_clicks_on_signin_button() throws Throwable
    {

        driver.findElement(By.cssSelector("#login")).click();
        System.out.println("User clicks login button");
        throw new io.cucumber.java.PendingException();
    }
}
Feature: Demo Tours Test

@SmokeTest
Scenario: Demo Tours Login with valid credentials

Given user is already on login page
And username and password are entered
When user clicks on signin button
Then user should see home page
package com.newtours.qa.runner;

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

@RunWith(Cucumber.class)

@CucumberOptions
(
        strict = true,
        dryRun = false,
        monochrome = true,
        features = "\\com\\newtours\\qa\\features",
        glue    = "\\com\\newtours\\qa\\stepdefinition"
)

public class TestRunner
{

}

项目结构:

共有1个答案

公羊宗清
2023-03-14

这些特性的路径应该是相对的,您所拥有的似乎是从根开始的。它正在查找C:\com\newtours\qa\features,而不是查看实际保存com/newtours/qa/features文件夹。

因此,我建议您使用相对路径,比如:src/main/java/com/newtours/qa/features。同样地,对胶水也这样做。

 类似资料:
  • 所以我最近在我的win10 PC上安装了eclipse,并创建了一个公共类。代码如下: 接下来,显示了一个错误: 然后,我删除了info.java文件,并显示以下错误: 我能做些什么来解决这个问题?

  • 问题内容: 静态字段何时初始化?如果我从不实例化一个类,而是访问一个静态字段,那么用于实例化私有静态字段的所有静态块和私有静态方法是否在那个瞬间被调用(按顺序)? 如果我调用静态方法怎么办?它也运行所有静态块吗?之前的方法? 问题答案: 类的静态初始化通常在以下事件之一首次发生之前立即发生: 创建该类的实例, 该类的静态方法被调用, 分配了该类的静态字段, 使用了非恒定静态字段,或者 对于顶级类,

  • 我已经配置了我的 REST/Spring/Jersey 项目,以使用 enunciate 为 API 生成文档。 我的pom中的相关变化。xml是 我的发音。xml如下 当我运行我的maven项目时,我收到以下初始化发音错误。正如您所看到的,错误不是很有帮助。任何提示我的配置中可能有什么错误。 --- maven-enunciate-spring-plugin:1.28:assemble (def

  • 在“初始化Java工具”期间发生内部错误。无法初始化类org.eclipse.jdt.core。JavaConventions在Eclipse中下载AspectJ开发工具后。我在用Spring靴。 我不知道是什么问题。

  • 本文向大家介绍docker mysql启动时执行初始化sql,包括了docker mysql启动时执行初始化sql的使用技巧和注意事项,需要的朋友参考一下 1.拉取Mysql镜像 docker pull mysql:5.7 2.检查mysql镜像 3.本地创建mysql外挂的目录 4.启动mysql 5.进入容器,登录mysql,检查发现已创建库 test_database 总结 以上所述是小编给

  • 我有一个由Quarkus添加到构建时初始化的第三方类,但由于静态线程使用,它需要运行时初始化。将其添加到运行时初始化本机构建时,会抱怨它同时存在于这两个版本中。 重新生成此文件的示例项目:https://github.com/hshorter/quarkus-avro-decode-example 使用“--initialize-at-run-time=org.apache.avro.specif