2017-05-02 7 views
0

https://github.com/pact-foundation/pact-js/blob/master/karma/mocha/client-spec.js의 사례를 기반으로 karma-pact 플러그인을 사용하여 JS 클라이언트 테스트를 실행합니다.카르마 협약 모의 서버 시작시기 결정

예에서 before()에 시간 초과가 있습니다. 테스트를 실행하기 전에 mock 서비스가 시작되었는지 확인합니다 ("느린 Travis CI 빌드에 필요함"참조).

다른 환경 (예 : CI 대 로컬)에서 너무 짧거나 길어서 고정 된 시간 초과를 설정하지 않으므로 서버가 있는지 확인하는 방법을 찾고있었습니다. 시작되었습니다.

나는 협약 API https://github.com/pact-foundation/pact-node#check-if-a-mock-server-is-running을 사용해 보았지만, 이것은 카르마 - 팩트 플러그인에 의해 시작된 것과 충돌하는 새로운 모의 서버를 시작하는 것처럼 보입니다. (오류 : 협약을 실행하려고 시도 할 때 ESRCH 오류가보고됩니다. 테스트 내에서 실행되는 createServer().

모의 서버가 시작되었는지 확인하는 방법이 있습니까? 예 : URL을 사용할 수있을 때까지 기다리는 중입니까? pact-node API를 사용하기 위해 karma-pact 플러그인이 시작한 모의 서버를 참조 할 수있는 방법이 있을까요?

답변

0

실제로 가장 간단한 방법은 포트가 사용 중일 때까지 기다리는 것입니다.

Karma Pact 기본적으로 모의 포트 1234이 시작되며 직접 지정할 수도 있습니다. 포트가 가동되면 서비스가 실행 중이므로 계속 진행할 수 있습니다.

예를 들어, 실행 모의 서비스 감지 wait-for-host 같은 것을 사용할 수 있습니다

var waitForPort = require('wait-for-port'); 

waitForPort('localhost', 1234, function(err) { 
    if (err) throw new Error(err); 
    // ... Mock Service is up - now we can run the tests 
}); 
+0

재미있는 아이디어를, 나는 시도 것을 줄 것이다. [isPortAvailable 함수] (https://github.com/pact-foundation/pact-js/blob/master/src/common/net.js)가() 함수를 사용할 가능성이 있다고 생각하는 것입니다. 포트가 모의 서버가 시작하려고하는 동안, 모의 서버가 시작되는 것을 막을 수 있습니까? –

+0

실제로 그 기능은 당신이 원하는 것과 정반대입니다. 서버를 시작하기 전에 포트가 사용 가능한지 여부를 확인하는 데 실제로 사용됩니다. 희망을 갖고 당신은 생각을 얻는다! 나는 대답을 업데이트 할 것이다 –

+0

맞아, 그것은 우리가하기를 원하는 것과 반대이다. 나는이 방법을 사용하는 잔소리하는 느낌을 가지고 모의 서버가 시작하지 못하게 할 수있다. (수표가 간단히 말해서 1234 번 포트를 여는 경우). –