2016-09-29 108 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()。这可能没什么大不了的。感谢您的关注