2017-01-26 11 views
0

async.each를 사용하여 여러 URL을 테스트하려고하는 chai-http와의 간단한 테스트가 있는데 요청이 더 많이 걸리면 2 초가 지나면 오류가 발생합니다.chai-http 및 async.each, "2000ms의 초과 시간 초과 ..."를 던졌습니다.

it("it should GET the required images", (done) => { 
    async.each(get_data, function(item, cb){ 
     chai 
     .request(item.server_url.S) 
     .get('/'+ item.endpoint.S + '?' + item.incoming.S) 
     .end(function(err, res) { 
      if(err) console.error(err); 
      expect(err).to.be.null; 
      expect(res).to.have.status(200); 
      cb(); 
     }); 
    }, function(err){ 
     if(err) console.log(err); 
     done(); 
    }); 
    }); 

내가 생각하는대로 "완료"라고 말했지만, 오류가 계속 발생합니다. 무엇이 잘못 되었나요? 오류가 비동기, 그냥 간단한 chai 요청, 단 하나의 요청으로 표시됩니다 ... 그래서 꽤 비동기 문제가 아니라 chaiHttp 나쁜 사용하여.

"end"대신 "then/catch"로 시도했지만 결과는 같습니다. 는 쿼리를 2 초 이상 걸리는 경우

내가, 동일한 테스트 스크립트에 있지만, DB와 비슷한 문제를 가지고, 그것은 휴식 ... 같은 오류 또한 "완료"를 사용 :

before((done) => { 
    // runs before all tests in this block 
    const params = { 
    TableName: "mytable" 
    }; 

    mydb.scan(params, (err, records) => { 
    if(err) console.log(err); 
    for(let i = 0; i < records.Items.length; i++){ 
     //...some ifs, nothing async 
    } 
    done(); 
    }); 
}); 
테스트는 더 이상 2000ms보다 오래 걸리는 경우

답변

1

는 문제 합의

it("it should GET the required images", (done) => { 
    this.timeout(5000); 
    //... 
+1

를 해결할 수있는 테스트에 대한 제한 시간을 연장하는 것이 좋습니다. 자세한 설명은 문서에 대한 링크 추가. https://mochajs.org/#timeouts – user2263572

+0

두 분 모두 고맙습니다. – Laerion