我正在尝试使用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的框架完全不熟悉,所以我不知道在哪里看 有人可以指出我正确的方向吗?
提前致谢!
答案 0 :(得分:1)
尽管表面Mocha和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-js
,mocha
或protractor
(-g
开关)。事实上,在我看来,这是一种反模式。
查看Installation section的Serenity/JS Handbook,了解有关所需依赖关系的更多信息。
我希望这个helps!
最佳,
扬