QUnit.on()

添加的版本:2.2.0

说明

QUnit.on( eventName, callback )

注册回调以在发出指定事件时触发。

此 API 实现了 js-reporters CRI standard ,并且是供持续集成插件和其他报告软件使用的主要接口。

类型 参数 说明
string eventName 事件的名称。
Function callback 一个回调函数。

runStart 事件

runStart 事件指示测试运行的开始。它只发出一次,并且在任何其他事件之前发出。

Object testCounts 汇总有关测试的计数。
number testCounts.total 注册测试的总数。
QUnit.on('runStart', runStart => {
  console.log(`Test plan: ${runStart.testCounts.total}`);
});

suiteStart 事件

suiteStart 事件表示模块的开始。最终会出现相应的suiteEnd 事件。

string name 模块的名称。
Array<string> fullName 一个或多个字符串的列表,包含(按顺序)任何祖先模块的名称和当前模块的名称。
QUnit.on('suiteStart', suiteStart => {
  console.log('suiteStart', suiteStart);
  // name: 'my module'
  // fullName: ['grandparent', 'parent', 'my module']
});

suiteEnd 事件

suiteEnd 事件指示模块的结束。它在其相应的 suiteStart 事件之后发出。

string name 模块的名称。
Array<string> fullName 一个或多个字符串的列表,包含(按顺序)任何祖先模块的名称和当前模块的名称。
string status 此模块中测试的汇总结果,其中之一:
failed:至少一项测试失败;
passed:没有失败的测试,这意味着只有通过、跳过或待办状态的测试。
number runtime 模块的持续时间(以毫秒为单位)。
QUnit.on('suiteEnd', suiteEnd => {
  console.log(suiteEnd);
  // …
});

testStart 事件

testStart 事件表示测试的开始。最终会出现相应的testEnd 事件。

string name 测试名称。
string|null moduleName 测试所属的模块,或 null 用于全局测试。
Array<string> fullName 列出(按顺序)任何祖先模块的名称和测试本身的名称。
QUnit.on('testStart', testStart => {
  console.log(testStart);
  // name: 'my test'
  // moduleName: 'my module'
  // fullName: ['parent', 'my module', 'my test']

  // name: 'global test'
  // moduleName: null
  // fullName: ['global test']
});

testEnd 事件

testEnd 事件表示测试结束。它在其相应的 testStart 事件之后发出。

testEnd 对象的属性:

string name 测试名称。
string|null moduleName 测试所属的模块,或 null 用于全局测试。
Array<string> fullName 列出(按顺序)任何祖先模块的名称和测试本身的名称。
string status 测试结果,其中之一:
passed:所有断言通过或未找到断言;
failed: 至少一个断言失败或者它是一个QUnit.test.todo()不再有任何失败的断言;
skipped:故意不运行测试;或者
todo:测试是“todo”并且仍然有一个失败的断言。
number runtime 测试的持续时间(以毫秒为单位)。
Array<FailedAssertion> errors 对于有状态的测试failed或者todo,将至少有一个失败的断言。但是,如果状态为failed由于 “todo” 测试没有失败的断言。

请注意,所有阴性测试结果都以这种方式传达其详细信息。例如,超时、未捕获的错误和全局污染还合成一个失败的断言。

FailedAssertion 对象的属性:

boolean passed 失败的断言为 False。
string|undefined message 断言检查内容的说明。
any actual 传递给断言的实际值。
any expected 传递给断言的期望值。
string|undefined stack 堆栈跟踪,如果结果来自旧的 Web 浏览器,则可能未定义。
QUnit.on('testEnd', testEnd => {
  if (testEnd.status === 'failed') {
    console.error('Failed! ' + testEnd.fullName.join(' > '));
    testEnd.errors.forEach(assertion => {
      console.error(assertion);
      // message: speedometer
      // actual: 75
      // expected: 88
      // stack: at dmc.test.js:12
    });
  }
});

runEnd 事件

runEnd 事件指示测试运行的结束。它只发出一次。

string status 所有测试的汇总结果,其中之一:
failed:至少一项测试失败或发生全局错误;
passed:没有失败的测试,这意味着只有通过、跳过或待办状态的测试。如果QUnit.config.failOnZeroTests被禁用,那么如果没有测试,运行也可能通过。
Object testCounts 关于测试的汇总计数:
number testCounts.passed 通过的测试数。
number testCounts.failed 失败的测试数。
number testCounts.skipped 跳过的测试数。
number testCounts.todo 待办事项测试的数量。
number testCounts.total 测试的总数,等于上述属性的总和。
number runtime 运行的总持续时间(以毫秒为单位)。
QUnit.on('runEnd', runEnd => {
  console.log(`Passed: ${runEnd.passed}`);
  console.log(`Failed: ${runEnd.failed}`);
  console.log(`Skipped: ${runEnd.skipped}`);
  console.log(`Todo: ${runEnd.todo}`);
  console.log(`Total: ${runEnd.total}`);
});