我可以在Nightwatch.js中更改失败测试的文本输出吗?
ד登录”弹出窗口中的密码输入(#password)可见16000ms - 预计“可见”但得到:“未找到”
我期待:
ד登录”弹出窗口中的密码输入(#password)未找到16000ms
答案 0 :(得分:1)
旧问题,但以上答案并不完全正确。尽管某些期望命令不支持可选消息,但也有一些命令不支持。您可以浏览api文档,该文档将告诉您哪些命令支持消息,哪些不支持消息:http://nightwatchjs.org/api
需要注意的是,以上答案中显示的可选消息将无论是否通过,都将输出,这意味着它们并不是严格的“错误消息”。
一种适应这种情况的方法是通过命名,例如,如果测试正在页面上寻找元素,请不要使用“找不到元素”消息,因为即使成功找到该元素也会显示此消息。而是使用“寻找元素”之类的东西...
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl, FormArray } from '@angular/forms';
@Component({
selector: '...',
templateUrl: '...',
styleUrls: [ '...' ]
})
export class AppComponent implements OnInit {
data: string[] = ['data1', 'data2', 'data3', 'data4'];
checkboxForm: FormGroup;
ngOnInit() {
this.checkboxForm = new FormGroup({
checkboxList: new FormArray([])
});
this.arrayOfCheckboxs();
}
private arrayOfCheckboxs() {
const formArr = this.checkboxForm.get('checkboxList') as FormArray;
this.data.forEach(item => {
formArr.push(new FormControl());
});
}
onChkBoxChange(e: MouseEvent, idx: number) {
console.log(`${(<HTMLInputElement>e.target).name}: ${this.checkboxForm.get('checkboxList').value[idx]}`);
}
}
这至少告诉用户测试失败时正在尝试做什么,但通过时还是有意义的。希望能有所帮助。
答案 1 :(得分:0)
这取决于您使用的是什么。如果您使用任何expect
命令,则不能自定义消息。但是,如果您使用assert
,则可以。
browser.assert.visible('.should_be_visible', 'This is my custom message');