Selenium 和 Jasmine:BeforeAll 在构建 Firefox 驱动程序时静默失败

Selenium and Jasmine: BeforeAll fails silently while building Firefox driver

我已经用 selenium 为我的应用程序编写了一些测试。我 运行 他们在本地和我们的 GitLab-CI 上。他们在本地工作,但在 CI 上他们突​​然失败(我没有更改相关的 afaik)。让我挠头的是,beforeAll 似乎不是 运行 结尾。

考虑一下:

let driver;

const options = new Options();
if (testConfig.headless) {
  options.addArguments('-headless');
}

describe('my app', () => {
  beforeAll(async done => {
    console.log('beforeAll');
    try {
      driver = await new Builder()
        .forBrowser('firefox')
        .setFirefoxOptions(options)
        .build();
    } catch (e) {
      console.log('error', e);
    }
    console.log(!driver ? 'driver is not' : driver is');
    done();
  });
  });

  beforeEach(async done => {
    await driver.get(/* my apps path */);
    done();
  });

CI 的结果:beforeEach 中的每个测试都失败了,因为 driverundefined。但是 beforeAll 只报告 'beforeAll'。最后的日志什么也没说。所以 beforeAll 函数似乎失败了,但无声无息,脚本仍然继续。我有什么办法可以解决甚至调试这个问题吗?

我的依赖

  "devDependencies": {
    "geckodriver": "^1.20.0",
    "jasmine": "^3.6.3",
    "selenium-webdriver": "^4.0.0-alpha.7",

原因是,与上述示例相反,浏览器未以无头模式启动。我的错。但是,什么都不说是一种非常糟糕的行为。我把这个留在这里,如果有人面临同样的问题。