Warum tun diese resharper Jasmin tests laufen im browser, aber nicht in phantomjs

Vielen Dank im Voraus an jeden, der liest sich durch diese - es gibt eine ganze Menge von Details, um die Frage zu stellen.

Ich versuche, einzuführen, javascript-testing in unser Projekt mit Jasmin. Die tests, die ich geschrieben habe, funktioniert im browser, aber nicht mit PhantomJS über Resharper.

Ich vermute, mir fehlt etwas über die Sanitär-Bedarf analysieren unsere JS-Dateien (vielleicht bin ich ja die Identifizierung eines Problems mit unserem JS-setup). Jede Hilfe äußerst dankbar...

Habe ich setup-Jasmine-tests in Visual Studio mit Jasmin...

//The Jasmine Test Framework
///<reference path="../jquery-1.10.1.js"/>
///<reference path="lib/jasmine-1.3.1/jasmine.css"/>
///<reference path="lib/jasmine-1.3.1/jasmine.js"/>
///<reference path="lib/jasmine-1.3.1/jasmine-html.js"/>
///<reference path="lib/jasmine-jquery.js"/>
///<reference path="lib/mock-ajax.js"/>
//Classes to test
///<reference path="../MyNamespace.Navigation.js"/>

describe("Breadcrumbs", function () {
    it("should have a window object", function() {
        //this test passes in PhantomJS and the browser
        expect(window).toBeDefined();
    });

    it("should have the base object available", function() {
        //this test only passes in the browser
        expect(window.MyNamespace).toBeDefined();
    });
});

dieser verweist auf eine JS-Datei, die enthält...

(function (app, $, undefined) {
     //do things here
}(window.MyNameSpace = window.MyNamespace || {}, jQuery));

Habe ich eine SpecRunner.html die erfolgreich laufen meine tests... es ist das specrunner html-Code, der kommt mit Jasmin 1.3.1 standalone-mit dem Kopf bearbeitet, wie so...

 <link rel="stylesheet" type="text/css" href="lib/jasmine-1.3.1/jasmine.css">
  <script type="text/javascript" src="../jquery-1.10.1.js"></script>
  <script type="text/javascript" src="lib/jasmine-1.3.1/jasmine.js"></script>
  <script type="text/javascript" src="lib/jasmine-1.3.1/jasmine-html.js"></script>

  <!-- include source files here... -->
  <script type="text/javascript" src="../MyNamespace.Navigation.js"></script>

  <!-- include spec files here... -->
  <script type="text/javascript" src="spec/BreadcrumbsSpec.js"></script>

Diese versuche werden entweder von meinem SpecRunner.html (was gut funktioniert) oder durch Resharper 7s testrunner mit PhantomJS, die ich vermute, ist nicht die Auswertung der code in meinem JS-code-Datei..?


Update: einige zusätzliche details...

Resharper version:

JetBrains ReSharper 7.1.3 Full Edition Build 7.1.3000.2254 auf
2013-04-10T16:48:18

Phantom-JS-version 1.9.1.0

Und ich habe gerade realisiert, dass ich nicht der tatsächliche Fehler in meiner Frage - Doh!

TypeError: 'undefined' is not an object (evaluating 'window.MyNamespace.Whatever') in http://localhost:47815/Tests.js (line 26)
TypeError: 'undefined' is not an object (evaluating 'window.MyNamespace.Whatever')
    at  BreadcrumbsSpec.js: line 26
    at  jasmine.js: line 1035
    at  jasmine.js: line 2053
    at  jasmine.js: line 2006
    at  jasmine.js: line 2335
    at  jasmine.js: line 2053
    at  jasmine.js:2043

Interessant Tests.js ist nicht meine Datei, ich denke mal, das ist ein R# Ding.

Ah - Tests.js ist meine spec-Datei (D. H. BreadcrumbsSpec.js in dieser Instanz). Wenn ich Start-Schalter Optionen, um zu sagen, Resharper TestRunner einen browser zu benutzen, bekomme ich die gleichen Ergebnisse (z.B. nur Fenster definiert ist) und eine leere Seite im browser...

InformationsquelleAutor Paul D'Ambra | 2013-09-03
Schreibe einen Kommentar