0

我正在尝试使用 Serenity-JS 运行我现有的量角器脚本。
为此,我按照互联网的说明在安装 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 文件引用的量角器脚本在开始时包含以下代码:

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 周围的框架完全陌生,所以我不知道在哪里看。
有人可以指出我正确的方向吗?

提前致谢!

4

1 回答 1

3

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

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

要使您的测试与 Mocha 一起工作,您需要确保使用正确的语法

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-js,mochaprotractor全局(-g开关)。事实上,在我看来,这是一种反模式。

查看Serenity/JS 手册的安装部分,以了解有关您需要的依赖项的更多信息。

我希望这会有所帮助

最好的,

于 2017-06-14T20:53:40.707 回答