2013-02-09 2 views
0

내 (Require.js) 환경에서 Mocha (브라우저 - 버전, 노드가 아님)를 실행하려고하는데 이상한 문제가 발생합니다.모카 + 문제 필요

내가 할 경우 다음

<script src="require.js" data-main='mochaTestMain.js'></script> 

와는 mochaTestMain.js에서 다음을 수행합니다

require(['someFile'], function() { 
    describe('foo', function() { 
     it('foo', function() { 
      chai.expect(false).to.equal(true) 
     }); 
    }); 
}); 

내 "foo는"사양 결과가 표시됩니다. 그러나 정확히 동일한 테스트를 someFile.js (내역 define 내부)에 넣으면 테스트가 표시되지 않습니다. 모카는 그것이 존재한다는 것을 전혀 모르는 것처럼 보입니다. describe 안에 console.log을 추가하면 표시되지만, it 안에 추가하면 표시되지 않습니다.

모카가 모듈에 정의 된 테스트를 인식하도록하기 위해 내가 할 수있는 것에 대한 제안이 있습니까?

답변

1

"mocha.run()"이 어디인지는 알 수 없습니다 위의 테스트 전에 실행되면 그 이유 중 하나 일 수 있습니다.

당신은 인라인 흐름으로 비동기 스레드 중 논리를 확 잡아 당기는에 의해 사물의 타이밍을 제어 할 수 있습니다 someTestFile.js의

내용 : mochaTestMain.js의

;(function(){ 

    function setUpTests(){ 
     describe('foo', function() { 
      it('foo', function() { 
       chai.expect(false).to.equal(true) 
      }) 
     }) 
    } 

    // note, we are returning a test "constructor" 
    define(function(){return setUpTests}) 

})(); 

내용 :

;(function(){ 

    require(["someTestFile"], function(setUpTests){ 
     // defining of the test must come before 
     setUpTests() 
     // you run the test suite 
     mocha.run() 
    }) 

})(); 
+0

나는'mocha.run()'을 가지고 있었지만, 나는'정의'를 가져야 만했던 곳에서'require'를 가졌습니다. 제안 해줘서 고마워. – machineghost