Ich habe eine ganze Menge Zeit damit verbracht, das zu debuggen, und dachte, ich würde fragen. Ich habe sogar eine GitHub repository erstellt, aber ich werde mich nicht darauf verlassen. Ich versuche die CommonJS-Syntax innerhalb des Karma-Testlaufers mit PhantomJS zu nutzen. Für mein Modul habe ich die einfachste Sache, die mir einfiel:Richtiger Gebrauch von Karma-Commonjs mit Jasmine 2
exports.returnYes = function() {
return "Yes";
};
The Jasmine Test:
var returnYes = require("../js/returnYes").returnYes;
describe("returnYes", function() {
it("should return Yes", function() {
expect(returnYes()).toBe("Yes");
});
});
Und wenn ich ein jasmine init
mache ich es von der Kommandozeile dank jasmine-npm
laufen kann indem man einfach jasmine
mit Ausgang eingeben:
$ jasmine
Started
.
1 spec, 0 failures
Finished in 0.003 seconds
Jetzt zu versuchen und es innerhalb Karma zu arbeiten: erstelle ich meine karma.conf.js mit Gerüsten: jasmine
, commonjs
. Und ich füge commonjs
als Präprozessor hinzu.
ich versuche, ein karma run
zu tun, und ich finde, dass es nicht global
finden, den Teil getJasmineRequireObj
in jasmine.js ist, wo es jasmineGlobal = global;
Die Befehlszeile Ausgabe erklärt ein wenig schwer zu lesen, aber hier ist es :
$ karma run
[2015-06-27 17:41:35.266] [DEBUG] config - Loading config /Users/zen/Projects/karma-commonjs-test/karma.conf.js
##teamcity[enteredTheMatrix]
##teamcity[testSuiteStarted nodeId='1' parentNodeId='0' name='karma.conf.js' nodeType='config' locationHint='config:///Users/zen/Projects/karma-commonjs-test/karma.conf.js']
##teamcity[testSuiteStarted nodeId='2' parentNodeId='1' name='PhantomJS 1.9.8 (Mac OS X 0.0.0)' nodeType='browser']
##teamcity[testStarted nodeId='3' parentNodeId='2' name='Error' nodeType='browserError']
##teamcity[testFailed nodeId='3' error='yes' message='ReferenceError: Can|'t find variable: global|nat http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?68f13ab3f93af5a219b9fe8409f8763b31998bba:27']
##teamcity[testSuiteFinished nodeId='2']
##teamcity[testSuiteFinished nodeId='1']
Denn hier eine gute Maßnahme sind die devDependencies in meinem packages.json:
"devDependencies": {
"jasmine-core": "^2.3.4",
"karma": "^0.12.37",
"karma-commonjs": "0.0.13",
"karma-jasmine": "^0.3.5",
"karma-phantomjs-launcher": "^0.2.0",
"phantomjs": "^1.9.17"
}
Ich bin mir nicht sicher, warum ich global
nicht finden kann. Jede Hilfe würde sehr geschätzt werden !!! :)