Nightwatch错误消息

时间:2018-02-07 09:56:31

标签: nightwatch.js

我可以在Nightwatch.js中更改失败测试的文本输出吗?

  

ד登录”弹出窗口中的密码输入(#password)可见16000ms - 预计“可见”但得到:“未找到”

我期待:

  

ד登录”弹出窗口中的密码输入(#password)未找到16000ms

2 个答案:

答案 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');