Junit 5 - 没有为参数注册参数解析器

我可以在没有任何特殊测试框架的情况下编写和执行Selenium脚本,但我想使用Junit 5(因为我们与其他工具有依赖关系),并且在使用Junit 4时从未见过这样的错误。org.junit.jupiter.api.extension.ParameterResolutionException

目前是Junit 5,我用谷歌搜索它以获得某种想法,但无法解决问题。

使用 和 测试脚本:JUnit 5Eclipse 4.8Selenium

import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

public  class loginTest  {
    public  WebDriver driver = null;

    public loginTest(WebDriver driver) {
        this.driver=driver;
    }

    @BeforeEach
    public void setUp() throws Exception {
        driver.get("google.com");
        System.out.println("Page title is: " + driver.getTitle());
    }

    @Test
    public void test() {
        // some action here I have in original script
        System.out.println("Page title is: " + driver.getTitle());
    }

    @AfterEach
    public void tearDown() throws Exception {
        driver.quit();
    }
}

堆栈跟踪:

org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver for parameter [org.openqa.selenium.WebDriver arg0] in executable [public login.loginTest(org.openqa.selenium.WebDriver)]。at org.junit.jupiter.engine.execution.ExecutableInvoker.resolveParameter(ExecutableInvoker.java:191)


答案 1

我两者都有,并注释相同的方法。我删除了前者。@Test@ParameterizedTest


答案 2

当您尝试在同一测试类中同时使用这两个测试类时,会出现此错误。删除注释将解决此问题。@Test@ParameterizedTest@Test


推荐