2016-11-08 5 views
0

정적 웹 앱이 있습니다. Html, JS (requirejs 모듈) 및 일부 CSS. 은 현재 'SERVERURL은'그것에서 내가 '요구'할 수 속성 모듈 및 사용 가치를 통해 설정되는 :로컬 호스트의 정적 웹 앱에 대한 인턴 기능 테스트를 실행합니다.

define({ 
    serverUrl: 'https://some.api/path/' 
}) 

내가 SRC/된 index.html을 사용하여 브라우저에서 기능 테스트를 실행하는 인턴 설정을 진입 점으로.

return this.remote 
    .get(require.toUrl('src/index.html')) 

는 주어진 속성에 하드 코딩 된 serverUrl 나는 serverUrl 그래서 난 오류 시나리오 등을 테스트 할 수 있습니다 localhost:1234/someFakeServer 가리키는 웹 애플리케이션에 대한 테스트를 실행하는 방법을 찾기 위해 노력하고있어 파일.

나는 웹을 트롤링했지만 나에게 비슷한 것을 원격으로하는 사람을 찾을 수 없기 때문에 내가 분명히 잘못된 것을하고 있다고 생각하게 만듭니다. 구성 모듈을 사용하는 NODE 응용 프로그램에 대한 솔루션이 있지만 웹 응용 프로그램을 시작하지 않기 때문에 이러한 파일은 저에게 적합하지 않습니다.

내가 생각 한 일부 솔루션은, 그러나 달성하는 방법을 알아낼 수 없습니다 :

  • 인턴의 파일을 프록시됩니다 : 9000, 그래서 어떻게 든 할 수있는 경우 '빌드'다른 특성을 가진 응용 프로그램 localhost를 가리키는 파일, 모두 좋다. 하지만 어떻게 해야할지 모르겠다. 나는 webpack과 비슷한 것을 보았지만, 내가 원하는 것을하지 않는 것 같다.
  • 필자는 인턴 'Setup'구성 항목을 살펴 보았습니다. 테스트가 시작되기 전에 기능이 실행되도록 허용했기 때문에 거기에서 속성 파일을 수정하는 것에 대해 생각했지만 너무 해킹 된 것처럼 보였습니다. 다시 넣으십시오 ...
+0

전체 목표는 앱이 인턴에서 구성한 serverUrl을 사용하는 것입니다. – jason0x43

+0

인턴이 구성 할 필요는 없습니다. 단지 환경과 인턴마다 환경 설정이 가능해야 해당 환경에 대해 실행할 수 있습니다. – OliverDeLange

답변

1

인턴이 속성 파일에 액세스 할 수 있다고 가정하면 인턴이 속성 파일을로드하고 서버 URL을 가져올 수 있습니다. 잠재적 속성 파일이 여러 개인 경우 사용되는 파일은 Intern 구성에서 설정하거나 사용자 정의 명령 줄 변수로 전달할 수 있습니다 (이는 Intern 구성의 속성을 설정하는 데 사용됩니다). 테스트 모듈은 Intern의 config에서 속성 파일의 이름을 가져온 다음 관련 파일을로드 할 수 있습니다. 다음과 같이 표시 될 수 있습니다. (테스트되지 않음)

// intern config 
define({ 
    // ... 
    propertiesFile: 'whatever', 
}) 

// test file 
define([ 'intern', ... ], function (intern, ...) { 
    registerSuite({ 
     // ... 
     'a test': function() { 
      var did = this.async(); 
      var remote = this.remote; 
      require([ 
       intern.config.propertiesFile 
      ], dfd.callback(function (props) { 
       return remote.get(props.url) 
        .otherStuff 
      }); 
     } 
    }); 
}); 
+0

내가 뭔가를 놓칠 수 있습니다 -하지만 그 인턴은 속성에 액세스 할 필요가 자사의 웹 애플 리케이션. 인턴은 여전히'require.toUrl ('src/index.html')'을 사용하여 웹 응용 프로그램을로드합니다. 단지 웹 응용 프로그램이 localhost를 가리키는 속성 파일을로드해야합니다. – OliverDeLange

+0

웹 응용 프로그램은 일반적으로 속성 파일을 어떻게로드합니까? – jason0x43

+0

그냥 Q 모듈에 설명 된 모듈을 필요로합니다. 기본적으로 NPM을 사용하여/src/*에서/dist /로 파일을 복사하고 이후에 올바른 특성 파일을 복사하는 일부 셸 명령을 실행하여 작동하도록했습니다. . "package : test": "cp -R ./src//dist && cp config/local/properties.js ./dist/js/app" – OliverDeLange