2017-12-04 13 views
3

AVA를 사용하여 비동기 테스트를 작성하고 각 테스트 케이스에 대해 사용자 정의 시간 초과를 설정해야합니다. 나는이 가능성을 내 테스트에 대한 모든 정보를 찾을 수없는 것은 다음과 같다 :AVA : 각 테스트 케이스마다 다른 시간 제한을 설정하십시오.

import test from 'ava'; 
 

 
test.cb('super test', t => { 
 
    setTimeout(() => { 
 
     t.is(1, 1); 
 
     t.end(); 
 
    }, 10000); 
 

 
    setTimeout(() => { 
 
     t.fail("Timeout error!"); 
 
     t.end(); 
 
    }, 100); 
 
});

은 아무도 AVA에서이를 구현하는 또 다른 방법을 알고 있나요?

답변

2

AVA에 이와 같은 기능이 포함되어 있는지 알 수 없습니다. 사용하지 않은 것 같습니다.

그러나 당신은 "시간 제한 테스트"어떤 종류의를 구현하는 유틸리티 함수를 만들 수 있습니다

import test from 'ava'; 

function timeout (ms, fn) { 
    return function (t) { 
     setTimeout(() => { 
      t.fail("Timeout error!") 
      t.end() 
     }, ms) 
     fn(t) 
    } 
} 

test.cb('super test', timeout(10000, t => { 
    t.is(1, 1); 
})); 
+0

고마워. 문제를 푸는 데 익숙한 당신의 접근 방식이 좋았는데, 지금은 프로젝트에서 사용하고 있습니다. 코드의 수를 줄이고 더 읽기 쉽게 만들어주었습니다. –

1

AVA 자체에이 기능을 지원하는 개방형 문제가있다 : 즉 '당신 토지까지 https://github.com/avajs/ava/issues/1565

가 너 스스로 타이머를 관리해야 해. 정상적인 테스트가 끝나면 그것을 지우는 것을 잊지 마십시오.

+0

감사합니다. 이전에이 문제를 보았습니다.하지만 누군가가이를 수행하는 방법을 알고, 해결 방법이나 확장 점을 알고 있으면이 사용자 지정 기능을 추가하는 방법을 알고 싶습니다. –