2016-04-29 8 views
1

test.jsでmodule.exportsを使用し、require()を使用して仕様スクリプトに組み込みたいと思います。ジャスミン仕様でmodule.exportsを使用

cat.js - 猫のための仕様

var cat = require('../app/cat') 
describe("Cat test", function() { 
    it("cat should meow with miau", function() { 
     expect(cat.meow()).toBe("miau") 
    }) 
}) 

私はジャスミンのCLIを使用してテストを実行すると、( - オブジェクトとファイル私は

var cat = { 
    name: "filemon", 

    meow: function() { 
     return "miau"; 
    }, 
    walk: function() { 
     return "siup siup siup"; 
    } 
} 
module.exports = cat 

catTest.jsエクスポートしたいですnpmでダウンロードされた)テストは次のように渡されます:

marcins-iMac:untitled marcin$ jasmine 
Started 
.. 

2 specs, 0 failures 
Finished in 0.004 seconds 

しかし、私はカルマランナーモジュールでテストを実行しようとすると、定義されていない:私は持って助けにはならない

marcins-iMac:untitled marcin$ karma start 
29 04 2016 23:52:29.238:WARN [karma]: No captured browser, open http://localhost:9876/ 
29 04 2016 23:52:29.248:WARN [karma]: Port 9876 in use 
29 04 2016 23:52:29.248:INFO [karma]: Karma v0.13.22 server started at http://localhost:9877/ 
29 04 2016 23:52:29.252:INFO [launcher]: Starting browser Chrome 
29 04 2016 23:52:30.112:INFO [Chrome 50.0.2661 (Mac OS X 10.11.2)]: Connected on socket /#MJ-R1hm8uQEvSJq9AAAA with id 29613373 
Chrome 50.0.2661 (Mac OS X 10.11.2) ERROR 
    Uncaught ReferenceError: module is not defined 
    at /Users/marcin/WebstormProjects/untitled/app/cat.js:9 

いくつかのアイデア:

  • のカルマの「ファイル」にrequire.jsを追加ウィンドウの範囲に.config.js
  • 追加検査対象物(それはCLIで醜いとdoesntの仕事だ)

問題は、cによって発生する可能性がある場合onfiguration、githubプロジェクト:https://github.com/marcinmierzejewski1024/jasmine-karma-playground

答えて

2

これは私がテストケースを動作させたものです。

変更ファイルセクションはkarma.config.jsです。

files: [ 
    '/app/cat.js', 
    '/app/dog.js', 
    'spec/catTest.js', 
    'spec/dogTest.js' 
], 

は、以下にkarma.config.js

frameworks: ['jasmine','browserify'], 

変更プリプロセッサ部以下にkarma.comfig.jsで枠組み部を変更しました。

preprocessors: { 
    'spec/catTest.js': ["coverage",'browserify'], 
    'spec/dogTest.js': ["coverage",'browserify'] 
}, 

最終package.json以下のようになります。

{ 
    "name": "untitled", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "test": "jasmine", 
    "dev-mode": "karma start karma.conf.js", 
    "test-report": "TODO:", 
    "test-coverage": "TODO:" 
    }, 
    "author": "", 
    "license": "ISC", 
    "devDependencies": { 
    "browserify": "^13.0.0", 
    "jasmine": "^2.4.1", 
    "jasmine-core": "^2.4.1", 
    "karma": "^0.13.22", 
    "karma-browserify": "^5.0.4", 
    "karma-chrome-launcher": "^0.2.3", 
    "karma-jasmine": "^0.3.8", 
    "karma-safari-launcher": "^0.1.1", 
    "require": "^2.4.20", 
    "requirejs": "^2.2.0", 
    "watchify": "^3.7.0" 
    } 
} 

P.S.ブラウザでテストケースを実行するには、browserifyが必要です。

ファイルセクションはファイルを宣言するのに適切な方法ではないかもしれませんが、起動するとすぐに再生することができます。

関連する問題