Webdriver.io如何将数据发送给自定义报告者

时间:2017-01-16 11:15:53

标签: javascript node.js selenium-webdriver mocha webdriver-io

我使用webdriver.io npm包中的 var headers = { 'Authorization': 'Bearer ' + 'token', 'Accept': 'application/json' }; function myCallbackFunction(data){ $('body').text(data.response); } $.ajax({ type: "GET", headers : headers, url: "https://site/api/etc", dataType: "jsonp", success: function(data){console.log(data);}, jsonp: false, jsonpCallback : "myCallbackFunction", error: function (xhr, ajaxOptions, thrownError) { alert(xhr.status); alert(thrownError); } }); 工具来运行Mocha测试用例。

以下是wdio的一部分:

wdio.conf.js

test.js: 应该发送自定义数据

var htmlReporter = require('./js/reporter/htmlReporter');
htmlReporter.reporterName = 'htmlReporter';

exports.config = {
    specs: [
        './test.js'
    ],
    reporters: [htmlReporter],
    ...
}

});

htmlReporter.js: 应该收到自定义数据

describe('Test suite', function() {
    // is it possible to send some data to the current test-suite?
    // this.customData ?
    it('Test case', function() {
        // is it possible to send some data to the current test-case?
        // this.customData ?
    });
});

1 个答案:

答案 0 :(得分:1)

面对同样的问题,将自定义消息发送到失败的测试。在测试错误对象中添加了消息并重新抛出错误

describe('Test suite', function() {
    it('Test case', function() {
       try {
          //test failed due to error!
       } catch(err) {
         err.message.myCustomMessage = "Test failed due to XXX".
         throw err;
       } finally {

       }
    });
});

然后在自定义记者

this.on('test:fail', function(test) {
    var myCustomMessage = test.err.message.myCustomMessage;
});

不确定是否有任何其他官方/标准方式,但这是服务的目的。

感谢。