我有一個測試項目https://github.com/danielbush/webpack-babel-karma-sourcemap-coverage。Sourcemap + istanbul/isparta代碼覆蓋率爲webpack + babel(對於es6)+ mocha(+ karma)
它由src/
中的2個簡單源文件組成,其中一個故意出錯(src/lib2.js
)。
我想使用從es6到es5的巴貝爾webpack和transpile並使用業力運行這個包上的摩卡測試。
我已經添加了源映射並進行了測試,以便我可以看到原始文件的行號。
對我來說,堆棧跟蹤看起來是這樣的:上面
21 02 2016 16:03:15.445:INFO [karma]: Karma v0.13.21 server started at http://localhost:9876/
21 02 2016 16:03:15.451:INFO [launcher]: Starting browser Chrome
21 02 2016 16:03:16.551:INFO [Chrome 48.0.2564 (Linux 0.0.0)]: Connected on socket /#yRS32ons0_2HGhrwAAAA with id 3072946
START:
lib1
✖ should return 1
Finished in 0.015 secs/0.001 secs
SUMMARY:
✔ 0 tests completed
✖ 1 test failed
FAILED TESTS:
lib1
✖ should return 1
Chrome 48.0.2564 (Linux 0.0.0)
Error: SIMULATED ERROR
at foo (/home/danb/projects/so-test-project/tests.webpack.js:135:10 <- webpack:///src/lib2.js:13:8)
at Context.<anonymous> (/home/danb/projects/so-test-project/tests.webpack.js:93:31 <- webpack:///test/index.js:7:11)
2日最後一行顯示webpack:///src/lib2.js:13
這是原始出處正確的位置。
我想要做的就是使用類似的伊斯坦布爾(或伊斯帕爾塔它使用伊斯坦布爾)補充覆蓋,這樣我可以生成HTML覆蓋率報告覆蓋/昭示着我沒有覆蓋的線路(可能) - 以及總覆蓋百分比。
但我想確保我的堆棧跟蹤仍像上面那樣正確地源映射。
我已經嘗試過isparta-loader和isparta-instrumenter-loader來在webpack中對文件進行transpile和instrument,但是我的行號在stacktrace(上面)中略有錯誤。似乎有很多類似於isparta的東西在浮動,文檔不是超級友好的。爲了更全面地表達所有這些:我將文件和測試捆綁在一起,然後在瀏覽器中測試(通過更多的手動方式),並且我希望我的源地圖(在瀏覽器中)指向原始代碼行和同時我想要覆蓋率報告來引用尚未被覆蓋的原始行和文件。
你得到「原始」es6文件的覆蓋率html輸出嗎?我的設置(與您的設置非常相似)會輸出「錯誤」的es6覆蓋率報告。搞亂紅線/綠線等 – lipp