2016-09-29 83 views
0

背景如何添加基於mocha + jenkins框架的額外信息?

我使用mocha.js執行api自動化,同時使用jenkins實現持續集成。我在嘗試記錄失敗測試的一些額外信息時遇到了一些問題。

我的代碼

以下是我的一個API的測試基本代碼。

var conf = require('../../../configuration.js'); 
var CONST = conf.CONST; 
var R = require('../../../req.js'); 
var expect = R.expect; 
var __path = R.__path; 
var Promise = require('bluebird'); 
var supertest = R.supertest; 


var env = CONST.APP_ADDRESS_TESTENV; 
var tester = supertest.agent(env); 


describe('TestA', function() { 

    it('TestPoint A', function (done) { 
     var url = __path(__filename); 
     var params = 'languageId=1'; 
     tester.get(url + params) 
      .end(function (err, res) { 
       new Promise(function (resolve, reject) { 
        var result = res.body.result; 
        expect(result.length).equal(8); 
        resolve(res.body); 
       }).then(body => { 
        expect(body.msg).equal("True"); 
        return body; 
       }).then(body => { 
        expect(body.code).equal("0"); 
        done(); 
        return body; 
       }).catch(err => { 
        console.log(env + url + params); 
        console.log(JSON.stringify(res.body)); 
        done(err); 
       }); 
      }); 
    }); 
}); 

問題 當我運行本地測試,例如,直接運行摩卡* .js文件,那麼該腳本順利。如果出現問題,它會通過測試並打印摩卡例外。此外,它會輸出我需要的信息(通過console.log)

當談到詹金斯,是的,我也可以用同樣的方式做到這一點,它可以正常工作。但對於詹金斯,我需要使用摩卡的「Xunit記者」,這將產生記者xml並由詹金斯閱讀。然後詹金斯很容易收集實時和歷史測試信息並做進一步的統計。但是,當上面的代碼去詹金斯,但是,它將打破XML和拋出異常一樣

org.dom4j.DocumentException: Error on line 1 of document file:/ 

我知道這是因「的console.log」,但我不知道這樣的想法。我只是希望看到這些信息,如果某些情況下失敗,無論它在哪裏(jenkins控制檯或xml報告)。

回答

0

哦,我發現我可以通過我想要的所有參數done()。這可能沒什麼大不了的。感謝您的關注