断言
内置可扩展的 assert/verify 库在 Nightwatch 实例上可用,作为两个命名空间,包含相同的对元素执行断言的方法
.assert- 当断言失败时,测试结束,跳过所有其他断言。.verify- 当断言失败时,测试记录失败并继续执行其他断言。
以下将结束测试
browser.assert.visible('.non_existing');但是,这只会记录失败并继续执行
browser.verify.visible('.non_existing');基本断言
来自 Node.js 断言模块 的方法也适用于 .assert/.verify 命名空间,可以使用。
否定(".not")断言
从版本 1.3 开始,所有断言(包括自定义定义的断言)都有一个 ".not" 对应项,可用于断言相反。
因此,诸如 elementNotPresent、cssClassNotPresent、hidden 之类的断言已过时并被弃用。
示例
describe('Demo .not assertion', function() {
it('demo test', function(browser) {
browser.init();
browser
.assert.not.elementPresent('.not_present') // previously .assert.elementNotPresent()
.assert.not.visible('.non_visible') // previously .assert.hidden()
.assert.not.urlContains('http://');
// ...
})
})自动重试
默认情况下,Nightwatch 会自动重试失败的断言,最长 5000 毫秒。这可以通过在您的 globals 中设置属性 retryAssertionTimeout(以毫秒为单位)来配置(另请参阅 使用测试全局变量)。
如果达到给定的超时时间,测试运行器将放弃重试并将断言标记为失败。
示例配置
{
src_folders: ['tests'],
test_settings: {
default: {
launch_url: 'https://nightwatch.node.org.cn',
globals: {
myGlobalVar: 'some value',
retryAssertionTimeout: 5000
}
}
}
}