2014-02-25 2 views
9

저는 Codeception을 사용하는 API에 대한 일부 단위 테스트를 진행하고 있습니다. 아이디어는 각 API 호출이 원하는 응답 코드와 JSON 객체를 원하는 형식으로 반환하는지 확인하는 것입니다.다른 코딩 환경 사용

내가 가지고있는 문제는 서버가 localhost인지, 테스트 서버인지 또는 프로덕션 서버인지에 따라 다른 URL을 사용해야한다는 것입니다.

테스트가 웹 브라우저를 통해 실행되지 않았기 때문에 $_SERVER['SERVER_NAME'] 값을 사용할 수 없습니다.

여기서 http://codeception.com/docs/07-AdvancedUsage#Environments은 구성 파일을 수정하여 일부 환경을 설정할 수 있다고 설명합니다. 설명서에는 구성 파일을 수정하여 자체 테스트에서 사용하는 방법이 설명되어 있지 않습니다.

이드는 local, test, production과 같은 환경을 설정 한 다음 내 단위 테스트 클래스 내에서 URLs을 알아야합니다. 각 환경에는 다른 URL이 있습니다.

설명서를 읽었지만이를 수행 할 방법을 찾을 수 없습니다.

내가 원하는 것을 얻기 위해 어떤 방법을 알고 있습니까?

+0

하위 구성이 부모 구성 (codeception.yml)과 병합 되었기 때문에 환경 구성이 제품군 특정인지 여부에 대한 문서가 명확하지 않으므로 상위 구성에서도 환경을 구성 할 수 있어야합니다. – Motin

답변

10

환경이 1.8에서만 지원되므로 코드 작성 버전이 1.8 이상인지 확인하십시오. codecept 명령을 실행하는 경우

... 
env: 
    local: 
     modules: 
      config: 
       PhpBrowser: 
        url: http://local.example.com/ 
       REST: 
        url: http://local.example.com/v1/ 
    integration: 
     modules: 
      config: 
       PhpBrowser: 
        url: http://integration.example.com/ 
       REST: 
        url: http://integration.example.com/v1/ 
    staging: 
     modules: 
      config: 
       PhpBrowser: 
        url: http://staging.example.com/ 
       REST: 
        url: http://staging.example.com/v1/ 

, 당신은 어떤 환경을 지정하는 --env 옵션을 제공해야합니다 아래

은 BDD 및 API testings를 사용할 수 우리의 PhpBrowser와 api.suite.yml에 지정된 codeception의 설정, 그리고 REST 모듈입니다 검사가 사용해야합니다.

+0

분명히 밝혀지기를, 모듈로 시작하는 전체 트리 이후입니다. ... ... enabled : ... config ... – dwenaus

+0

하나의 테스트에서 여러 환경에 대해 테스트 할 수 있습니까? – AlxVallejo