我必须将测试从 JUnit 4 迁移到 JUnit 5,我有 @Rule 设置 EnvironmentVariables 变量。在 Junit 4 中,每个测试的变量都被清除,在 JUnit 5 中,我需要相同的行为,因为现在运行的测试是单独通过的,但是当我从类中运行所有测试时,第二个测试会失败,因为仍然具有相同的环境变量。
我有:
@Rule
public final EnvironmentVariables environmentVariables = new EnvironmentVariables();
@Test
void method1(){...}
@Test
void method2(){...}
Run Code Online (Sandbox Code Playgroud)
我还不熟悉 Junit 5 所以提前感谢您的帮助
我想在多台机器上配置多个 Firefox 浏览器来执行并行测试。
提前致谢。
Firefox 版本: 60.0.1
Selenium Firefox 驱动程序: 3.7.1
Geckdriver 版本: v0.19.0
System.setProperty("webdriver.gecko.driver","C:\\Fm2\\Try_Browsers\\Browsers\\drivers\\geckodriver_19.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://www.google.com/");
driver.close();
Run Code Online (Sandbox Code Playgroud)
我在不同的bat文件中设置了网格和节点:
HUb设置:
java -jar selenium-server-standalone-3.1.0.jar -port 4444 -role hub
节点设置:
java -Dwebdriver.gecko.driver=./geckodriver_19。 exe -jar selenium-server-standalone-3.1.0.jar -port 5557 -role node -hub http://localhost:4444/grid/register -browser“browserName=firefox,maxInstances=10,platform=ANY,seleniumProtocol=网络驱动程序”
System.setProperty("webdriver.gecko.driver","C:\\Fm2\\Try_Browsers\\Browsers\\drivers\\geckodriver.exe");
DesiredCapabilities cap = DesiredCapabilities.firefox();
cap.setBrowserName("firefox");
cap.setPlatform(Platform.ANY);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), cap);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("https://www.google.com/");
driver.close();
Run Code Online (Sandbox Code Playgroud)
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create …Run Code Online (Sandbox Code Playgroud) selenium selenium-grid selenium-firefoxdriver selenium-webdriver remotewebdriver