为什么我的茉莉花测试在DEFAULT_TIMEOUT_INTERVAL之前超时?

时间:2016-01-08 19:56:46

标签: javascript node.js jasmine supertest

相关:Can't set timeout for jasmine

Jasmine 2.4.1

我的测试报告由于超时而导致失败,即使超时值似乎大于报告的时间。

我这样做:

describe('tests content controller', function(){
    beforeAll(function(done) {
        jasmine.DEFAULT_TIMEOUT_INTERVAL= 120000;
        //...
    })
    fit('/content GET should return 200',function(done){
        request(app)
        .get('/content')
        .set('Authorization', "bearer " + requestor.token)
        .set('Accept', 'application/json')
        .expect(200)
        .end(function (err, res) {
            console.log('timeout',jasmine.DEFAULT_TIMEOUT_INTERVAL); //prints 120000
            if (err) done.fail(err);
            expect(res.statusCode).toBe(200);
            done();
        })
    }); 

然后这个测试失败了,用:

1) tests content controller /content GET should return 200
  Message:
    Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
  Stack:
    Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
        at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)


Finished in 106.449 seconds

106.449秒小于120秒,这是我的超时值似乎设置为。

那么为什么这个测试失败了?

1 个答案:

答案 0 :(得分:2)

我没有在done内部调用beforeAll,导致此错误。