断言
内置可扩展的 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
}
}
}
}