1. ホーム
  2. java

[解決済み] Junit 5 - パラメータに対応するParameterResolverが登録されていない

2022-03-05 23:25:06

質問

私は特別なテストフレームワークなしでSeleniumスクリプトを作成し実行することができますが、私はJunit 5を使用したかった(他のツールとの依存関係があるため)、私はこのエラーを見たことがない。 org.junit.jupiter.api.extension.ParameterResolutionException Junit 4 で作業しているとき。

現在はJunit 5であり ある種のアイデアを得るためにググってみましたが、問題を解決できません。

を使用したテストスクリプトです。 JUnit 5 , Eclipse 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: 実行ファイル [public login.loginTest(org.openqa.selenium.WebDriver)] のパラメータ [org.openqa.selenium.WebDriver arg0] に対して登録した ParameterResolver がありません。 at org.junit.jupiter.engine.execution.ExecutableInvoker.resolveParameter(ExecutableInvoker.java:191)

どのように解決するのですか?

Marc Philipp氏がコメントで述べているように、JUnit Jupiterがテストクラスをインスタンス化できるようにする必要があります。

このシナリオの場合、カスタム・コンストラクタを削除する必要があります。 WebDriver .

そうすると、2つの選択肢があります。

  1. を作成します。 WebDriver を自分自身で作成することができます。 @BeforeAll または @BeforeEach メソッドを使用します。
  2. などの拡張子を使用します。 セレン・ジュピター を管理するのに役立ちます。 WebDriver をご利用ください。