您可以使用多种东西。
2) 如果上一个脚本是单独的,我如何知道我在上一个脚本中做了什么,例如如何知道我已登录?
这是beforeEach(), afterEach() 可以提供帮助的地方:
为了帮助测试套件干燥所有重复的设置和拆卸代码,
Jasmine 提供了全局的 beforeEach 和 afterEach 函数。作为
顾名思义, beforeEach 函数在每个规范之前调用一次
在 describe 中运行,并且 afterEach 函数被调用一次
在每个规范之后。
还有beforeAll(), afterAll() available in jasmine 2,或者通过jasmine-beforeAll第三方jasmine 1:
beforeAll 函数在所有规范之前只调用一次
describe 运行,并且在所有规范之后调用 afterAll 函数
结束。这些功能可用于加速测试套件
昂贵的设置和拆卸。
1) 我尝试在 config.js 中添加所有变量并且我需要
它在 protractor.conf.js 它正确加载问题是当我使用
某些测试中的任何这些变量都不起作用(测试失败
“未定义用户名”)我知道有一种方法我需要
config.file 在每个测试脚本中,但这真的不是最好的选择
我的眼睛。
我个人使用的一个选项是创建一个config.js 文件,其中包含您在多个测试中需要的所有可重用配置变量,并且需要该文件一次 - 在量角器配置中 -然后将其设置为params 配置键值:
var config = require("./config.js");
exports.config = {
...
params: config,
...
};
config.js 在哪里,例如:
var config;
config = {
user: {
login: "user",
password: "password"
}
};
module.exports = config;
那么,您不需要在每个测试中都要求config.js,而是使用browser.params。例如:
expect(browser.params.user.login).toEqual("user");
另外,如果您需要某种全局测试准备步骤,您可以在onPrepare() 函数中进行,请参阅Setting Up the System Under Test。 here 提供了执行“全局”登录步骤的示例配置。
另一个快速说明:您可以自定义全局定义变量(如内置browser 或protractor),使用onPrepare 中的global 设置它们。例如,我将protractor.ExpectedConditions 定义为自定义全局变量:
onPrepare: function () {
global.EC = protractor.ExpectedConditions;
}
然后,在测试中,不需要任何东西,`EC 变量将在范围内可用,例如:
browser.wait(EC.invisibilityOf(scope.page.dropdown), 5000)
此外,使用"Page Object Pattern" 组织测试也有助于解决可重用性和模块化问题。