簡體   English   中英

在茉莉花單元測試中使用嵌套的describe語句時,為什么業力或Webstorm崩潰? 錯誤:無法讀取未定義的屬性*?

[英]Why is karma or Webstorm crashing when using nested describe statements in a jasmine unit test? Error: Cannot read property * of undefined?

我將WebStorm與業力結合使用以運行Jasmine javaScript單元測試。 如果我嵌套了describe語句,那么業力崩潰了 ,或者WebStorm崩潰了,我不確定。

業力錯誤輸出顯示:

錯誤[karma]:[TypeError:無法讀取未定義的屬性'應該返回Foo']

  • 如果我直接在Jasmine SpecRunner.html中運行測試,那么一切都很好,並且測試通過了。
  • 如果我刪除嵌套的describe語句,則一切運行正常。

版本:

  • OS X:10.9(13A603)
  • 網絡風暴:7.0.2
  • 業力:0.10.8
  • 業力茉莉:0.1.4
  • jasmine.js:茉莉花1.3.1

是什么導致它崩潰?

代碼和測試:

var Foo = function Foo(name) {

    this.name = name;

};

Foo.prototype.bar = function bar() {

    return "Hello " + this.name;

};


describe("Foo", function () {


   describe("constructor", function () {


        it("should return a Foo", function () {

            var act,
                target;

            act = function () {
                target = new Foo("Gary");
            };

            expect(act).not.toThrow();

            expect(target).not.toBeNull();


        });


    });



   describe("bar", function () {

        it("should return a string like 'Hello' + name", function () {

            var target, actValue;

            target = new Foo("Gary");

            actValue = target.bar();

            expect(actValue).toBe("Hello Gary");


        });

    });


});

因果報錯輸出:

/usr/local/bin/node /Applications/WebStorm.app/plugins/js-karma/js_reporter/karma-intellij/lib/intellijServer.js --karmaPackageDir=/usr/local/lib/node_modules/karma --configFile=/Users/Gary/Documents/DotBox/test/karma.conf.js --coverageTempDir=/private/var/folders/5m/hfxftkwx5fsdnxf3g3nn5_2m0000gn/T/karma-intellij-coverage-4959093687844631591.tmp
INFO [karma]: Karma v0.10.8 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
INFO [Chrome 31.0.1650 (Mac OS X 10.9.0)]: Connected on socket vWDSeE6uTpA6RpuH05Bq
INFO [watcher]: Changed file "/Users/Gary/Documents/DotBox/test/fooSpec.js".
ERROR [karma]: [TypeError: Cannot read property 'should return a Foo' of undefined]
TypeError: Cannot read property 'should return a Foo' of undefined
    at createSpecNode (/Applications/WebStorm.app/plugins/js-karma/js_reporter/karma-intellij/lib/intellijReporter.js:51:37)
    at IntellijReporter.onSpecComplete (/Applications/WebStorm.app/plugins/js-karma/js_reporter/karma-intellij/lib/intellijReporter.js:190:20)
    at EventEmitter.emit (events.js:98:17)
    at onResult (/usr/local/lib/node_modules/karma/lib/browser.js:177:13)
    at Socket.EventEmitter.emit [as $emit] (events.js:117:20)
    at SocketNamespace.handlePacket (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/namespace.js:335:22)
    at Manager.onClientMessage (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/manager.js:488:38)
    at WebSocket.Transport.onMessage (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transport.js:387:20)
    at Parser.<anonymous> (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:39:10)
    at Parser.EventEmitter.emit (events.js:95:17)
    at finish (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:288:16)
    at Parser.expectHandler (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:299:15)
    at Parser.add (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:466:24)
    at Parser.expect (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:499:10)
    at Parser.<anonymous> (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:298:18)
    at Parser.add (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:466:24)
    at Parser.expect (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:499:10)
    at expectData (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:296:16)
    at Parser.<anonymous> (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:317:11)
    at Parser.add (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:466:24)
    at Parser.expect (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:499:10)
    at Parser.opcodeHandlers.1 (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:316:14)
    at Parser.processPacket (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:533:8)
    at Parser.add (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:466:24)
    at Socket.<anonymous> (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:141:17)
    at Socket.EventEmitter.emit (events.js:117:20)
    at Socket.<anonymous> (_stream_readable.js:746:14)
    at Socket.EventEmitter.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:408:10)
    at emitReadable (_stream_readable.js:404:5)
    at readableAddChunk (_stream_readable.js:165:9)
    at Socket.Readable.push (_stream_readable.js:127:10)
    at TCP.onread (net.js:526:21)

Process finished with exit code 1

SpecRunner輸出

SpecRunner輸出

看起來這是WebStorm 7.0.2版中的問題,尤其是舊的Karma插件。 解決方法是下載新的業力插件version 131.560 或者,當下一個WebStorm version 7.0.3發布時,它可能具有新的插件。

在這里查看一些文檔:

http://youtrack.jetbrains.com/issue/WEB-10010

https://github.com/karma-runner/karma-intellij/commit/589062a9500d889a8d328ff91cc185e6ec1fd127

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM