2014-05-19 15 views
7

Używam maszynopis 1.0 z Visual Studio 2012, bezczelności 3.2.1.1 i Jasmine 2.bezczelności nie można odnaleźć zmienna

Mam bardzo prosty test, który kompiluje poprawnie, ale nie przechodzi przy użyciu Visual Studio bezczelności Test Adapter lub wiersz poleceń.

otrzymuję następujący błąd

ReferenceError: Can't find variable: MyProject in....

Mój projekt jest skonstruowany tak:

**solution** 

    TypeScriptProject 
     X.ts 

    TestProject 
     chutzpah.json 
     compile.bat 
     Scripts\(contains typings) 
     Spec 
     TestX.ts 

TypeScriptProject \ X.ts

module MyProject { 
    export class X { 
     getValue(): number { 
      return 5; 
     } 
    } 
} 

TestProject \ chutzpah.json

{ 
"Framework": "jasmine", 
"Compile": { 
    "Extensions": [".ts"], 
    "ExtensionsWithNoOutput": [".d.ts"], 
    "Executable": "compile.bat" 
    }, 
"References": [ 
    { "Path": "../TypeScriptProject/X.ts"} 
], 
"Tests": [ 
    { "Path": "Spec"} 
] 
} 

TestProject \ compile.bat

@echo off 
tsc Spec/TestX.ts ../TypeScriptProject/X.ts --sourcemap 

TestProject \ Spec \ TestX.ts

/// <reference path="../Scripts/typings/jasmine/jasmine.d.ts"/> 
/// <reference path="../../TypeScriptProject/X.ts"/> 
describe("test x value", function(){ 
    it("should", function(){ 
     var x = new MyProject.X(); 
     expect(x.getValue()).toEqual(5); 
    }); 

}); 

Ponieważ kompiluje grzywny, odniesienia w TestX.ts powinny być poprawny.

Mój problem wydaje się być inny niż Chutzpah running Jasmine in TFS 2012 can't find referenced file under test, ponieważ pojawia się błąd w testerze programu Visual Studio i wydaje się, że mówi on o używaniu Zespołu Build.

Odpowiedz

6

Domyślnie Chutzpah zakłada, że ​​katalog źródłowy i wyjściowy do kompilacji jest lokalizacją pliku chutzpah.json. Jednak w twoim przypadku te katalogi powinny być o jeden wyżej, ponieważ kompilujesz pliki .ts, które nie znajdują się w lub poniżej lokalizacji pliku chutzpah.json.

Więc dodając sourcedirectory i outdirectory do kompilacji ustawień będzie działać prawidłowo:

{ 
"Framework": "jasmine", 
"Compile": { 
    "Extensions": [".ts"], 
    "ExtensionsWithNoOutput": [".d.ts"], 
    "Executable": "compile.bat", 
    "SourceDirectory": "../", 
    "OutDirectory": "../", 
    }, 
"References": [ 
    { "Path": "../TypeScriptProject/X.ts"} 
], 
"Tests": [ 
    { "Path": "Spec"} 
] 
} 
+0

doskonały - Zrobiłem błędnych założeń co folder referencje robi. Dziękuję za szybką odpowiedź na oba moje pytania. – row1

Powiązane problemy