Ich möchte meinen TypeScript Code mit Jasmine von Karma ausgeführt testen.Karma-Testlauf mit Jasmine kann kein TypScript-Modul finden
Leider kann das Karma mein Modul nicht finden und existiert mit "Modulname wurde noch nicht für den Kontext geladen".
Meine Typoskript Klasse ist dies:
src/ts/Greeter.ts
export default class Greeter {
name:string;
constructor(message:string) {
this.name = message;
}
greet() {
return "Hi " + this.name;
}
}
dest/js/Greeter.js
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"use strict";
var Greeter = (function() {
function Greeter(message) {
this.name = message;
}
Greeter.prototype.greet = function() {
return "Hi " + this.name;
};
return Greeter;
}());
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = Greeter;
},{}]},{},[1]);
Und hier ist mein Testdatei:
Test/ts/GreeterSpec.ts
///<reference path="../../../typings/index.d.ts"/>
import Greeter from "../../../src/ts/Greeter/Greeter";
describe('Greeter', function() {
it('says Hi', function() {
var name = 'Joe';
var greeter = new Greeter(name);
expect(greeter.greet()).toBe('Hi ' + name);
});
});
Test/js/GreeterSpec.js
"use strict";
///<reference path="../../../typings/index.d.ts"/>
var Greeter_1 = require("../../../src/ts/Greeter/Greeter");
describe('Greeter', function() {
it('says Hi', function() {
var name = 'Joe';
var greeter = new Greeter_1.default(name);
expect(greeter.greet()).toBe('Hi ' + name);
});
});
Wenn mein Test ausgeführt wird, erhalte ich diese Antwort:
Uncaught Error: Module name "../../../src/ts/Greeter/Greeter" has not been loaded yet for context.
Dies ist meine Compilerkonfiguration:
tsconfig.json
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "commonjs",
"moduleResolution": "node",
"noEmitOnError": true,
"noImplicitAny": true,
"removeComments": false,
"sortOutput": true,
"sourceMap": true,
"target": "es5"
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
Wie soll ich meine Import in meinem Test-Spezifikation deklarieren die kompilierte Version zu finden, mein Modul zu machen?
Guter Fang! Sieht so aus, als ob die TypScript-Kompilierung meiner Testdateien dies vermasselt! Ich schaue mir das an und ändere es zu dem, was benötigt wird. Vielen Dank. :) –
Gut zu hören :) –