Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的Selenium JUnit测试会绕过@Before&@在注释之后?_Java_Selenium_Selenium Webdriver_Junit - Fatal编程技术网

Java 为什么我的Selenium JUnit测试会绕过@Before&@在注释之后?

Java 为什么我的Selenium JUnit测试会绕过@Before&@在注释之后?,java,selenium,selenium-webdriver,junit,Java,Selenium,Selenium Webdriver,Junit,我已经编写了一些代码来打印“设置”,然后运行测试,然后打印“关闭测试”。但是Selenium跳过了我的[Before]和[After]方法,只运行自己的测试 package smoketests; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.jupiter.api.Test; import org.openqa.selenium.WebDriver; pub

我已经编写了一些代码来打印“设置”,然后运行测试,然后打印“关闭测试”。但是Selenium跳过了我的[Before]和[After]方法,只运行自己的测试

package smoketests;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.WebDriver;

public class PageTitleJUnit {

    @Test
    public void PageTitleTest() {
        System.out.println("Running the test");
        String webURL = "http://sdettraining.com/trguitransactions/AccountManagement.aspx";

        WebDriver driver = utilities.DriverFactory.open("Chrome");
        driver.get(webURL);
        String actualTitle = driver.getTitle();
        String expectedTitle = "SDET Training | Account Management";

        Assert.assertEquals(expectedTitle, actualTitle);            
    }

    @Before
    public void setUp() {
        System.out.println("Setting up");   
    }
    @After
    public void tearDown() {
        System.out.println("Closing the test");
    }

}

出于某种原因,它只是从@test方法打印出“Running the test”,并跳过了我的Before和After方法。我尝试重新编写代码,并重新启动eclipse。但到目前为止没有任何帮助。这是控制台日志的屏幕截图。

主要问题是您混淆了注释和注释

JUnit 4.x的基本注释如下所示:

  • @BeforeClass
  • @AfterClass
  • @之前
  • @之后
  • @Test
您已通过导入org.junit.Before分别解析了
注释
导入org.junit.After

但是您通过导入org.junit.jupiter.api.Test引用了

解决方案
  • 项目工作区中删除JUnit 5.x的引用
  • 通过导入org.junit.Test来解析
    @Test
    注释
  • 通过
    IDE
    清理
    项目工作区
  • 执行您的
    测试

Selenium正在跳过我的[Before]和[After]方法,只运行自己的测试。
这是什么意思?您正在作为JUnit测试运行,对吗?是的。这是正确的。“Before”表示它应该在运行“Test”之前运行代码块。“After”意味着它应该在测试完成后运行该行代码。但它同时跳过了“之前”和“之后”什么junit版本?我如何知道我目前使用的是哪个junit版本?我刚刚做了。我只是想知道,up投票对你的帐户有什么帮助?@Bekind这将解释该系统及其工作原理: