2013-04-18 1 views
2

내가 간신히 엠버 발생기모카 테스트

yo ember

에 의해 생성 된 코드를 수정 한 보좌관 타다 남은 생성기에서 작업 및 테스트/사양을 변경하지 않습니다/약간 test.js

  1. 을 console.log가 termin에 아무것도 출력하지 않습니다 :
    'use strict'; 
    (function() { 
        describe('Give it some context', function() { 
         describe('maybe a bit more context here', function() { 
          it('should equal to the title', function() { 
           var title = document.title; 
           title.should.equal('Ember Starter Kit'); 
              console.log(title) //doesn't output anything in the terminal 
          }); 
          it('should equal to a number', function() { 
           1.should.equal(1); 
          }); 
         }); 
        }); 
    })(); 
    

    이 이상한 일이있다

    가 실행 "모카 : 모든"(모카) 작업 테스트 : HTTP : //

  2. 는 0 테스트를 보여줍니다. 오류없이

    완료. *. */index.html을

    0 테스트 완료 (1 밀리 초).

답변

2

"0 테스트가 완료되었습니다"라는 메시지가 표시되면 테스트 파일 내에 오류가 있음을 발견했습니다. 구문 오류 정수의 방법입니다 실행을 console.log (제목) 후

  1. 누락 세미콜론
  2. :

    은 테스트에 두 가지 문제가있다. 다음을 시도해보십시오

expect(1).to.equal(1);

을 또한, 당신의 index.html 차이 티 포함 후 (그래서 should 작품)에서 다음 줄을 포함해야합니다 :

... 
<!-- assertion framework --> 
<script src="lib/chai.js"></script> 
<script>var expect = chai.expect</script> 
<script>var should = chai.should()</script> 
... 

이가 테스트를 원인 운영. 그러나 콘솔 로깅 문제에 대한 대답이 없습니다. 나는 직접 대답을 찾고있다. 꿀꺽 거리는 모카와 PhantomJS가있는 것처럼 보입니다.

편집 : grunt-mocha의 콘솔 로그인이 비활성화되었습니다 : grunt-mocha source.

프로젝트 디렉토리의 node_modules/grunt-mocha/tasks/mocha.js에 들어가면 101 줄의 주석 처리를 제거하고 프로젝트에 대한 로깅을 사용할 수 있습니다.

전체 업데이트 테스트 파일 :

/*global describe, it, document, expect */ 
'use strict'; 
(function() { 
    describe('Give it some context', function() { 
     describe('maybe a bit more context here', function() { 
      it('should equal to the title', function() { 
       var title = document.title; 
       title.should.equal('Ember Starter Kit'); 
          console.log(title); //doesn't output anything in the terminal 
      }); 
      it('should equal to a number', function() { 
       expect(1).to.equal(1); 
      }); 
     }); 
    }); 
})(); 

편집 : 꿀꿀 - 모카의 개발자에서 :

그래, 명령 줄에서 콘솔 출력을 얻을 수있는 그 라인의 주석을 해제 ...하지만 일반적으로 자동 테스트를 실행할 때 자동 테스트가 필요하지 않으므로 기본적으로 비활성화되어 있습니다. 정말로 디버그하고 싶다면 브라우저에서 사양을 열고 브라우저 콘솔/디버거를 사용하는 것이 좋습니다. 보너스는 당신이 관심있는 테스트 만 실행하도록 suite/test를 클릭 할 수 있다는 것입니다.

+0

안녕하세요. Dan. 당신의 답은 정말로 저에게 효과적입니다. 그러나 모카가 실제 엠버 애플 리케이션 대신에 빈'index.html (/test/index.html) '을 테스트한다면 요점은 무엇입니까? 왜냐하면'console.log (document.title)'은 실제 ember 어플리케이션이 아닌 'Mocha test runner'를 출력하기 때문입니다. – mko

+0

테스트는 작업중인 모든 부분의 기능을 테스트하기위한 비품이있는 환경에서 실행됩니다. 따라서 응용 프로그램의 일부가 제목을 변경하면이를 테스트 할 수 있습니다. 'index.html' 파일은 앱에서 필요한 DOM 변경 사항을 허용하는 테스트 러너입니다. – Dan