Serenity-JS:ReferenceError:未定义beforeAll

时间:2017-06-14 05:54:15

标签: protractor serenity-js

我正在尝试使用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的框架完全不熟悉,所以我不知道在哪里看 有人可以指出我正确的方向吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

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

例如,在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 sectionSerenity/JS Handbook,了解有关所需依赖关系的更多信息。

我希望这个helps

最佳,