2016-07-29 13 views
0

Ich bin wirklich neu in Churtzpah und Jasmine. Ich habe versucht, Tests mit Chutzpah durchzuführen. Ich benutze Jasmin, Typescript, Chutzpah, angular2 um Komponententests zu schreiben. Wenn ich versuche, die Tests auszuführen, sehe ich, dass meine Tests erkannt werden. Meine chutzpah.json Datei ist wie folgt:Variable kann nicht gefunden werden: require - Jasmine Unit testing mit Chutzpah

 { 
    "Framework": "jasmine", 

    "Compile": { 
    "Mode": "Executable", 
    "Executable": "../compile.bat", 
    "Extensions": [ ".ts" ], 
    "ExtensionsWithNoOutput": [ ".d.ts" ], 
    "UseSourceMaps": true, 
    "Paths": [ 
     { 
     "SourcePath": "../", 
     "OutputPath": "../" 
     } 
    ] 
    }, 
    "References": [ 
    { "Path": "../node_modules/es6-shim/es6-shim.js" }, 
    { "Path": "../node_modules/reflect-metadata/Reflect.js" }, 
    { "Path": "../node_modules/systemjs/dist/system.src.js" }, 
    { "Path": "../node_modules/zone.js/dist/zone.js" }, 
    { "Path": "../node_modules/zone.js/dist/jasmine-patch.js" }, 
    { "Path": "../node_modules/zone.js/dist/async-test.js" }, 
    { "Path": "../node_modules/zone.js/dist/fake-async-test.js" }, 
    { "Path": "../node_modules/core-js/client/shim.min.js" }, 
    { 
     "Path": "app", 
     "Includes": [ "*.ts" ], 
     "Excludes": [ "*.d.ts" ] 
    } 
    ], 
    "Tests": [ 
    { "Include": "*.spec.ts" } 

    ] 
} 







import {it, describe, beforeEach, inject, beforeEachProviders} from "@angular/core/testing"; 

import {LoginService} from "./login.service"; 

describe("testing LoginService",() => { 
    let Myservice: LoginService = new LoginService(); 
    it("Should return true",() => { 
     expect(Myservice.validateUser("test", "test")).toBe(true); 
    }); 
     it("validateUser should fail if input values are null",() => { 
      expect(Myservice.validateUser(null, null)).toBe(false); 
     }); 
    }); 

Lassen Sie mich wissen, was sonst muss ich tun. dank

die compile.bat sieht aus wie

@echo off tsc.cmd app/login/login.service.ts app/tests/login.service.spec.ts --sourcemap--declaration 

ich die folgenden Fehler in dem Testausgabefenster

siehe
Error: ReferenceError: Can't find variable: require 
at global code in file:"path" 
0 passed, 0 failed, 0 total (chutzpah). 

========== Total Tests: 0 passed, 0 failed, 0 total ========== 

Antwort

1

Im Chutzpah Repo Probe eine Angualr-Typoskript, das sein könnte hilfreich zu bekommen you started. Es ist Chutzpah.json unten, aber ein paar wichtige Dinge zu beachten.

  1. Stellen Sie sicher, Tests sind nicht im Abschnitt Referenzen enthalten
  2. Stellen Sie sicher, explizit der Schlüssel Winkelrahmen in der richtigen Dateien einzeln Referenz

Chutzpah.json

{ 
    "Framework": "jasmine", 
    "Compile": { 
    "Mode": "Executable", 
    "Executable": "../compile.bat", 
    "Extensions": [ ".ts" ], 
    "ExtensionsWithNoOutput": [ ".d.ts" ], 
    "UseSourceMaps": true, 
    "Paths" : [ 
     { "SourcePath": "../", "OutputPath": "../" } 
    ] 
    }, 
    "References": [ 
    { "Path": "../../libs/angular.min.js", "IsTestFrameworkFile": true }, 
    { "Path": "../../libs/angular-mocks.js", "IsTestFrameworkFile": true }, 
    { "Path": "../src", "Includes": [ "*.ts" ], "Excludes": ["*.d.ts"] } 
    ], 
    "Tests": [{ "Include": "*Tests.ts" }] 
} 
+0

Hey @Matthew, danke für Ihre Antwort. Ich habe Änderungen an meinem chutzpah.json vorgenommen .. schaue dir bitte die editierte chutpah.json Datei an. .le mich wissen, ob ich noch Änderungen vornehmen muss –

1

Es sieht Wie der Pfad zu Ihrer Quelle hat einen Fehler. Sie geben Folgendes an:

"Path": "../app/" 

Dieser Pfad ist jedoch relativ zum Speicherort der Datei chutzpah.json. Es sollte sagen:

"Path": "app" 
+0

ich habe es geändert ..es ist nicht hilfreich. Aber ich musste diese Korrektur machen. Danke –

Verwandte Themen