2014-02-20 3 views
1

꽤 오래 인턴과 싸워 왔고 서버 코드 (these recommendations)와 클라이언트 코드를 테스트했습니다. (tradionnal app, 예 : this project of mine에 정의 된대로).Intern client.js는 설정 파일의 패키지 정의를 사용하지 않으므로 dojo/_base/declare를 해결할 수 없습니다.

인턴 설정 파일에는 다음이 포함

loader: { 
    packages: [ 
     { name: 'dojo', location: './libs/dojo' }, 
     { name: 'server', location: './server' } 
    ] 
}, 

그러나, 도장 패키지의 위치는 항상 무시됩니다. 보고 된 오류는 다음과 같습니다 I 출력을 단순화 < 루트 > 부분에 대한 편집 됨

$ node node_modules/intern/client.js config=intern suites=server/model/tests/News 
Defaulting to "console" reporter 
Error: Failed to load module dojo/_base/declare from <root>/dojo/_base/declare.js (parent: server/model/Ne 
ws) 
    at <root>\node_modules\intern\node_modules\dojo\dojo.js:742:12 
    at fs.js:207:20 
    at Object.oncomplete (fs.js:107:15) 

.

<root> 
    |- client 
    |- libs 
    | |- dojo 
    | |- ... 
    |- node_modules 
    | |- grunt 
    | |- intern 
    | |- ... 
    |- server 
     |- dao 
     | |- tests 
     |- model 
     | |- tests 
     |- ... 

어디에서 잘못 이니

내 현재의 폴더 구조는 ...

나의 현재 해결 방법은 < 루트 > 수준에서 도장 폴더를 복사하는 것입니다하지만 불편?

업데이트 : 내가 읽는 곳 (예 : here)은 확장명이없는 파일 이름이 아닌 MID로 지정됩니다. "config = intern.js"으로 명령을 실행하면 구성이 올바르게 처리됩니다 (설정 내용을 기록하기 위해 "client.js"를 해킹했습니다). 참고 : Windows 컴퓨터에서 Node.js/Intern을 실행하고 있습니다 ...

추가 정보 : 다음은 테스트를 처리하는 데 필요한 최소 컨텐츠입니다.

define({ 
    loader: { 
     packages: [ 
      { name: 'dojo', location: './libs/dojo' }, 
      { name: 'server', location: './server' } 
     ] 
    }, 
    suites: [ 'server/allTests' ] 
}); 
+0

전체 구성 파일과 함께 사용중인 Intern 버전을 제공 할 수 있습니까? 당신이 묘사하고있는 것은 기본값 인 것처럼 많은 의미를 갖지 않습니다. –

+0

인턴 1.4를 사용하고 npm으로 조사했습니다. intern.js의 최소값은 위 질문의 일부로 표시됩니다. 명령 행 : **./node_modules/intern/bin/intern-client.js config = intern.js **. 구성 파일 확장자가 없으면 myTest 시리즈는 무시됩니다. 30 개의 테스트가 올바르게 처리됩니다. –

답변

1

내가 로더 관련이 직면 한 문제 : config 파일 intern.js 루트 레벨에

  • 경우, 명령이 확장 포함해야한다 : config=intern.js을;
  • 구성 파일이 tests과 같은 하위 폴더에 있으면 명령에 config=tests/intern 확장자를 생략해야합니다 (MUST).

이 메시지는 Node.js require() 함수를 호출하여 intern/client.js 38 번째 줄에서 발생합니다.

+2

항상 후자 여야합니다. 'config'는 파일 경로가 아닌 모듈 ID입니다. 후자로 항상 작동하지 않는다면 아마도 로더의 버그 일 수 있지만 그것이 무엇을하고 있을지를 생각할 수는 없습니다. –

+0

인턴 신입생이지만이 문제로 해결되었습니다. intern.js를 루트 수준에두고 config = intern은 config 파일을 등록하지 않았고 config = intern.js는 등록하지 않았습니다. – Sean