Serenity-JS: ReferenceError: beforeAll is not defined

Serenity-JS: ReferenceError: beforeAll is not defined

我正在尝试使用 Serenity-JS 运行 我现有的 Protractor 脚本。
为此,我按照互联网的说明在安装 Serenity-JS 后将以下内容添加到我的配置中('npm install -g serenity-js',加上所需的'npm install -g mocha --save-dev');

exports.config = {
    framework: 'custom',
    frameworkPath: require.resolve('serenity-js'),
    // ...
}

框架正在尝试 运行 我的测试,但似乎无法识别我的 beforeAll()。
我收到以下错误:

ReferenceError: beforeAll is not defined

我的 conf 文件引用的 Protractor 脚本在开头包含以下代码:

var generic = require('./generic.js');
var tools = new generic.Tools();

describe('Testscript 1', function () {

    beforeAll( function () {
        //Open none angular site
        browser.driver.get('http://localhost/');
        browser.driver.findElement(by.xpath('//*[@id="url"]/option[4]')).click();
        browser.driver.findElement(by.xpath('//*[@id="submit"]')).click();
    });

    beforeEach(function () {
        browser.refresh();
    });

我对 Protractor 的框架完全陌生,所以我不知道去哪里找。
有人可以给我指出正确的方向吗?

提前致谢!

尽管表面上 Mocha and Jasmine 的语法可能看起来相似,但实际上它们是两个完全不同的框架,语义略有不同。

例如,在 Jasmine 中你会使用 beforeAll(),在 Mocha 中你有 before().

要使您的测试与 Mocha 一起工作,您需要确保您使用的是 correct syntax:

describe('Testscript 1', function () {
    before( function () {
        //Open none angular site
        browser.driver.get('http://localhost/');
        browser.driver.findElement(by.xpath('//*[@id="url"]/option[4]')).click();
        browser.driver.findElement(by.xpath('//*[@id="submit"]')).click();
    });

    beforeEach(function () {
        browser.refresh();
    });

现在关于 Serenity/JS 部分 :-)

您不需要全局安装 serenity-jsmochaprotractor-g 开关)。事实上,在我看来,这是一种反模式。

查看 Installation section of the Serenity/JS Handbook 以了解有关所需依赖项的更多信息。

希望这个helps

最佳,

一月