mmanela / chutzpah

Chutzpah is an open source JavaScript test runner which enables you to run unit tests using QUnit, Jasmine, Mocha and TypeScript.
http://mmanela.github.io/chutzpah/
Apache License 2.0
550 stars 142 forks source link

Unable to run coverage with engine as "Chrome" #789

Closed siddharth4gupta closed 4 years ago

siddharth4gupta commented 4 years ago

First of all, thanks to you Matthew and all contributors of Chutzpah. This is a fantastic test runner.

Coming to the issue - I have some unit tests which fail for the reasons seen below. If I run them by specifying engine as Chrome there are no issues and all 18 tests pass.

C:\Users\siddharthg.CITRITE\.nuget\packages\chutzpah\4.4.6\tools>chutzpah.console.exe /path "BcrConfigManagerTest.js"
Chutzpah console test runner  (64-bit .NET 4.0.30319.42000)
Version 4.4.6.0
Copyright (C) 2018 Matthew Manela (http://matthewmanela.com).

Error: SyntaxError: Use of reserved word 'class'
While Running:C:\Users\siddharthg.CITRITE\.nuget\packages\chutzpah\4.4.6\tools\BcrConfigManagerTest.js

global failure  [FAIL]
   Test 'global failure ' failed
        SyntaxError: Use of reserved word 'class' Expected: undefined, Actual: null
in C:\Users\siddharthg.CITRITE\.nuget\packages\chutzpah\4.4.6\tools\BcrConfigManagerTest.js (line 5)

global failure   [FAIL]
   Test 'global failure  ' failed
        SyntaxError: Use of reserved word 'class' Expected: undefined, Actual: null
in C:\Users\siddharthg.CITRITE\.nuget\packages\chutzpah\4.4.6\tools\BcrConfigManagerTest.js (line 10)

global failure    [FAIL]
   Test 'global failure   ' failed
        SyntaxError: Expected an identifier but found 'bcmInstance' instead Expected: undefined, Actual: null
in C:\Users\siddharthg.CITRITE\.nuget\packages\chutzpah\4.4.6\tools\BcrConfigManagerTest.js (line 15)

                                                                                                                                                                                                                                                   File: C:\Users\siddharthg.CITRITE\.nuget\packages\chutzpah\4.4.6\tools\BcrConfigManagerTest.js
     3 total, 3 failed, took 0.04 seconds

Tests complete: 3
=== 3 total, 3 failed, took 2.24 seconds ===

However, if I run a coverage with this command "chutzpah.console.exe /coverage /path "BcrConfigManagerTest.js" /engine "Chrome"", the run fails with the below seen errors

C:\Users\siddharthg.CITRITE\.nuget\packages\chutzpah\4.4.6\tools>chutzpah.console.exe /coverage /path "BcrConfigManagerTest.js" /engine "Chrome"
Chutzpah console test runner  (64-bit .NET 4.0.30319.42000)
Version 4.4.6.0
Copyright (C) 2018 Matthew Manela (http://matthewmanela.com).

Error: SyntaxError: Unexpected token (4:6)
    at Parser.pp.raise (http://localhost:9876/Users/siddharthg.CITRITE/.nuget/packages/chutzpah/4.4.6/tools/ChutzpahTestHarnessFiles/Coverage/blanket_qunit.js?sha=0764cee68169ec96c46e7e49db826ce130d08c7e:1751:31)
    at Parser.pp.unexpected (http://localhost:9876/Users/siddharthg.CITRITE/.nuget/packages/chutzpah/4.4.6/tools/ChutzpahTestHarnessFiles/Coverage/blanket_qunit.js?sha=0764cee68169ec96c46e7e49db826ce130d08c7e:2270:26)
    at Parser.pp.semicolon (http://localhost:9876/Users/siddharthg.CITRITE/.nuget/packages/chutzpah/4.4.6/tools/ChutzpahTestHarnessFiles/Coverage/blanket_qunit.js?sha=0764cee68169ec96c46e7e49db826ce130d08c7e:2249:77)
    at Parser.pp.parseExpressionStatement (http://localhost:9876/Users/siddharthg.CITRITE/.nuget/packages/chutzpah/4.4.6/tools/ChutzpahTestHarnessFiles/Coverage/blanket_qunit.js?sha=0764cee68169ec96c46e7e49db826ce130d08c7e:2683:26)
    at Parser.pp.parseStatement (http://localhost:9876/Users/siddharthg.CITRITE/.nuget/packages/chutzpah/4.4.6/tools/ChutzpahTestHarnessFiles/Coverage/blanket_qunit.js?sha=0764cee68169ec96c46e7e49db826ce130d08c7e:2468:183)
    at Parser.pp.parseTopLevel (http://localhost:9876/Users/siddharthg.CITRITE/.nuget/packages/chutzpah/4.4.6/tools/ChutzpahTestHarnessFiles/Coverage/blanket_qunit.js?sha=0764cee68169ec96c46e7e49db826ce130d08c7e:2385:41)
    at parse (http://localhost:9876/Users/siddharthg.CITRITE/.nuget/packages/chutzpah/4.4.6/tools/ChutzpahTestHarnessFiles/Coverage/blanket_qunit.js?sha=0764cee68169ec96c46e7e49db826ce130d08c7e:107:30)
    at module.exports (http://localhost:9876/Users/siddharthg.CITRITE/.nuget/packages/chutzpah/4.4.6/tools/ChutzpahTestHarnessFiles/Coverage/blanket_qunit.js?sha=0764cee68169ec96c46e7e49db826ce130d08c7e:4238:19)
    at Object.instrumentSync (http://localhost:9876/Users/siddharthg.CITRITE/.nuget/packages/chutzpah/4.4.6/tools/ChutzpahTestHarnessFiles/Coverage/blanket_qunit.js?sha=0764cee68169ec96c46e7e49db826ce130d08c7e:4432:36)
    at Object.instrument (http://localhost:9876/Users/siddharthg.CITRITE/.nuget/packages/chutzpah/4.4.6/tools/ChutzpahTestHarnessFiles/Coverage/blanket_qunit.js?sha=0764cee68169ec96c46e7e49db826ce130d08c7e:4450:22)
While Running:C:\Users\siddharthg.CITRITE\.nuget\packages\chutzpah\4.4.6\tools\BcrConfigManagerTest.js

Error: Error: error (timeout=5000) loading source script: http://localhost:9876/Users/siddharthg.CITRITE/.nuget/packages/chutzpah/4.4.6/tools/background-WebSocketAgentConnection.js?sha=af841f63e3b8fdacc808f194f8a30366ecaf4b56
    at http://localhost:9876/Users/siddharthg.CITRITE/.nuget/packages/chutzpah/4.4.6/tools/ChutzpahTestHarnessFiles/Coverage/blanket_qunit.js?sha=0764cee68169ec96c46e7e49db826ce130d08c7e:5477:31
While Running:C:\Users\siddharthg.CITRITE\.nuget\packages\chutzpah\4.4.6\tools\BcrConfigManagerTest.js

Error: Unknown error occurred when executing test file. Received exit code of 2
While Running:C:\Users\siddharthg.CITRITE\.nuget\packages\chutzpah\4.4.6\tools\BcrConfigManagerTest.js

=== 0 total, 0 failed, took 18.57 seconds ===

Are there any issues with the coverage library Blanket.js to run on Chrome. If so, how would you suggest I could get coverage numbers from these tests?

mmanela commented 4 years ago

Coverage does not work on anything but phantom.js and there are no plans to fix that since the library coverage is built on is deprecated so it would require a total rewrite.

Sorry for the inconvenience