저는 Coffeescript를 모든 용도로 사용하고 있으며, chai.js
을 테스트에 포함 시키려고 애쓰는 데 어려움을 겪었습니다. 내 configs/testacular.conf.js
RequireJS를 사용하지 않고 어떻게 Testacular로 (Coffeescript) 가져 오기를 관리합니까?
는 (상대적 basePath
주의) 다음과 같습니다
basePath = '../';
// Install devDependencies with `npm install` first before attempting to run Testacular!
files = [
MOCHA,
MOCHA_ADAPTER,
'assets/js/lib/**/*.js',
'test/lib/angular/*.js',
'test/unit/**/*.coffee',
'assets/js/*.coffee',
'node_modules/chai/chai.js'
];
autoWatch = true;
browsers = ['Chrome'];
내가 npm install
와 devDependencies
를 통해 설치할 수 차이 싶습니다 때문에 내 소스에 포함하기보다는 node_modules/chai/chai.js
을 나열합니다.
내 시험은 test/unit/coolSpec.coffee
에 살고과 같이 읽습니다
"use strict"
should = chai.should()
# Mocha/Chai specs for controllers go here
describe "OverviewCtrl", ->
beforeEach ->
ctrl = new OverviewCtrl()
it "should do something awesome.", ->
1.should.be.a 'string'
을하지만 chai
을 찾을 수 testacular 실패합니다.
Uncaught ReferenceError: chai is not defined
at /.../test/unit/coolSpec.coffee-compiled.js:5
Chrome 25.0 (Linux): Executed 0 of 0 ERROR (0.386 secs/0 secs)
어떻게 RequireJS에 의존하지 않고 자바 스크립트 수입 을 관리 할 수 있습니다?
편집 : testacular documentation here에 따르면 파일 배열에 파일을 나열하는 효과는 테스트시 브라우저에 <script>
태그를 삽입하는 것과 똑같습니다. 이것은 모든 기호가 임포트되었음을 의미합니다.
그런데 다시 문제가 될 수 있습니다. http://chaijs.com/chai.js 자체가 RequireJS 용으로 작성되었습니다. 나는 그것을 사용할 수밖에 없다.
종속성을 설치하고 파일을 가진 존재입니다하지 소스에서 그 함수 나 객체에 대한 참조를 가지고 같은 또는 테스트 파일 - 두 가지를 혼동시킬 수 있습니다. Node.js의 필수 시스템, 소스 인라이닝 또는 실제로 RequireJS와 같은 코드를 사용하여 실제로 코드에 chai를 포함해야합니다. 당신의 질문을 오해하고있는 것 또한 가능합니다 ... – jrajav
나는 당신이 그것에 대해 크게 생각한다고 생각합니다. 나는 Testacular가 우리를 위해 인라이닝을한다고 가정 할 것이지만,'chai.js'는 당신이 그것을 인라인 할 수있는 스타일로 쓰여지지 않습니다. 슬프게도 testacular는 노드의'require'를 제공하지 않으므로 역시 작동하지 않을 것이다. 옵션이 제한된 것처럼 보입니다! – fatuhoku
내 질문에 대해 다시 한 가지 방법은 "** Testacular의 관용적 인 테스트 종속성 포함 방법은 무엇입니까? **"입니다. 놀랍게도 대답은 'RequireJS'인 것처럼 보이는데, 이유는 없지만 특히 'chai.js'가 테스트 서버에서 바로 제공 될 수있을 때 그렇습니다. – fatuhoku