2013-12-08 15 views
0

我正在使用WebStorm與karma結合運行Jasmine javaScript單元測試。 如果我嵌套describe陳述,然後業力崩潰,或者它可能是WebStorm崩潰,我不知道。當在茉莉花單元測試中使用嵌套的描述語句時,爲什麼karma或Webstorm崩潰?錯誤:無法讀取未定義的屬性*

的因緣錯誤輸出說道:

ERROR [karma]: [TypeError: Cannot read property 'should return a Foo' of undefined]

  • 如果我直接在茉莉花SpecRunner.html運行測試,一切正常,並測試通過。
  • 如果我刪除嵌套describe語句,那麼一切運行良好。

版本:

  • OS X:10.9(13A603)
  • WebStorm:7.0.2
  • 因緣:0.10.8
  • 果報茉莉:0.1.4
  • jasmine.js:jasmine-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 Output

+1

可能在安裝或webstorm一個錯誤,我今天跑了類似的一種考驗在WebStorm與摩卡。 –

+0

是的,它似乎是Webstorm中的一個錯誤。 – gmetzker

+0

這屬於Programmers.se – brimble2010

回答

相關問題