2017-08-25 85 views
1

我有一個奇怪的場景。我創建一個html頁面,添加腳本標籤。腳本標籤包含UI組件的js文件,該組件完全使用react js開發。運行java selenium測試的JS組件的代碼覆蓋

我的HTML: enter image description here 我使用的是本地網絡服務器來啓動這個頁面,能看到我的組件,在這種情況下,它是一個「模式」。

模態: enter image description here

我寫一個Maven ENV檢驗這一模式的Java Selenium測試,並測試它沒有任何問題。

我的要求是通過運行我的java selenium測試(或者甚至手動測試)來獲取此組件的代碼覆蓋率。

這是可能的,可行的。我做了很多Google搜索,找不到任何適合的內容。

任何幫助最受讚賞。

+1

,如果您使用的是節點應用是可能的,在這裏看到:https://medium.com/@the1mills/front-end-javascript-test-coverage-with-istanbul-selenium-4b2be44e3e98 我認爲這如果您不使用節點/快遞作爲中間件,那麼將會付出巨大的努力。因爲如果使用快遞,你可以使用伊斯坦布爾中間件 你可以嘗試利用你的前端的開發預覽覆蓋,例如, https://開頭lkrnac。net/blog/2014/04 /用量角器測量代碼覆蓋率/ – hypery2k

+0

我共享的第一個鏈接似乎很有趣,解決了我的問題。我會試一試並保持你的發佈。再次感謝。 – aspiringqa

+0

@ hypery2k - 此問題已解決。我跟着文章,它真棒!非常感謝!! – aspiringqa

回答

1

總結,靈感來自上面發佈的鏈接,但在一些簡單的追蹤的子彈。

  1. 添加伊斯坦布爾依賴於你的package.json

  2. 手動工具的js文件,運行以下命令

    istanbul instrument test.js >> test-instumented.js 
    
  3. 讓你的文件訪問此儀表文件,而不是的原始的js文件。

  4. 運行測試運行以查看您的頁面加載沒有任何問題。
  5. 現在對於實際運行,將此覆蓋信息腳本添加到@AfterClass中,或者在所有測試運行之後以及關閉並退出webdriver之前添加。 enter image description here

  6. 現在coverage.json文件被轉儲所有的覆蓋信息。

  7. 現在該生成html報告了。轉到您的coverage.json目錄並運行以下命令,然後按Enter:

    istanbul report 
    
  8. 這會產生一個名爲覆蓋目錄,並在其中,你會發現lcov.info,你可以將它傳遞給sonarqube文件或者打開html文件來查看結果。

快樂的代碼覆蓋率。

相關問題