2012-09-18 2 views
1

나는 requirejsjs-test-driver을 사용하려고 노력해 왔지만 제대로 작동하지는 않습니다. requirejs 모듈을 사용하는 js-test-driver 테스트를 실행할 수 있습니까?

내가 루트에이 같은 최소한의 구성이 :

server: http://localhost:9876 

load: 
- src/main/resources/web/resources/vendor/requirejs/require.js 

test: 
- src/test/js/*.js 

A "SRC/주 /의 JS는/greeter.js"파일은 바보 모듈 정의

define(function(require) { 

    myapp = {}; 

    myapp.Greeter = function() { 
    }; 

    myapp.Greeter.prototype.greet = function(name) { 
    return "Hello " + name + "!"; 
    }; 

    return myapp; 
}); 

을 그리고 난 ' 내가 이것을 실행할 때마다

GreeterTest = TestCase("GreeterTest"); 

require.configure({ ???? }); 
require([ "src/main/js/greeter" ], function(myapp) { 

    GreeterTest.prototype.testGreet = function() { 
    var greeter = new myapp.Greeter(); 
    assertEquals("Hello World!", greeter.greet("World")); 
    }; 

}); 

가, 내가 얻을 :에 "SRC/테스트/JS/greeterTest.js"에서 부하에게 환영 인사 모듈을 필요로하게하려고 m Greeter를 만들 때 myapp가 정의되지 않았기 때문에 오류가 발생했습니다.

이 경우에 구성 할 수있는 방법이 있습니까? 내가 시도 :

  • 파일 같은 것으로 base을 속성을 설정 : /// ... 프록시 requirejs 할 수있는 요청을 게이트웨이 구성을 사용하여 파일
  • 의 위치를 ​​제공하기 위해 (I 비록 js 파일을 서비스 할 서버가 없으므로 file : ///을 사용해야 함)

내가 시도해야 할 다른 것이 있습니까?

감사

답변

1

이 가능 밝혀,하지만 제대로 문서화 :

  • JS-테스트 드라이버가 테스트 서버는
  • 한 번, 파일 제공 정적 파일을 응답 할 수있는 'serve' 설정이 있습니다 localhost : 42442/test/xxxx에서 사용할 수 있습니다 ('test'접두사는 문서 페이지의 낮은 주석을 제외하고는 언급되지 않습니다).

그래서이 작품 :


server: http://localhost:9876 

load: 
    - src/main/resources/web/resources/vendor/requirejs/require.js 

test: 
    - src/test/js/*.js 

serve: 
    - src/main/js/*.js 

그리고 requirejs은 다음과 같이 구성해야합니다 :

 

require({ 
    baseUrl : "/test/src/main/js" 
}, [ "greeter" ], function(myapp) { 

    GreeterTest = TestCase("GreeterTest"); 

    GreeterTest.prototype.testGreet = function() { 
     var greeter = new myapp.Greeter(); 
     assertEquals("Hello World!", greeter.greet("World")); 
    }; 

}); 
 

주의 사항 :

  • 은/시험 전에
  • 네가해야 할 사실 se "src/main/js"부분; 내 jsTestDriver 구성 "src"폴더와 같은 수준에있는 사실 연결된 것 같아요 및 다르게 배치 할 경우 일부 조정이 필요할 수 있습니다.
관련 문제