问题描述
对不起,如果这个问题听起来很愚蠢。 我们正在开发一个使用 Java、Cucumber、Junit 和 Failsafe 套件等的自动化框架。 有人建议使用 ThreadLocal。但我有点困惑,为什么当 Junit 在自己的线程中运行黄瓜功能时我们需要使用 ThreadLocal..
建议使用 ThreadLocal,如下所示;-
public class WebDriverFactory {
private static ThreadLocal<WebDriver> driver = new ThreadLocal<>();
public static synchronized void setDriver(String browser) {
switch (browser) {
case "chrome":
driver = ThreadLocal.withInitial(() -> {
WebDriverManager.chromedriver().setup();
return new ChromeDriver(BrowserOptions.getChromeOptions());
});
break;
default:
throw new IllegalStateException("Unexpected value: " + browser);
}
}
public static synchronized WebDriver getDriver(){
return driver.get();
}
谁能确认这是否真的需要并行运行测试。?另外,使用 ThreadLocal 时是否需要“同步”?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)