簡體   English   中英

識別和計數JSP中的Java代碼行,以幫助進行單元測試

[英]Identify and count lines of Java code in JSPs to help drive unit testing

我正在嘗試增加大型代碼庫的單元測試,幾個不同的團隊都在積極地工作。 許多代碼都是繼承的,並且都沒有單元測試開始。 此外,在JSP中通常會找到大型Java代碼塊。 我一直提倡開發人員不要將Java代碼放在JSP中,而是將其放在Java類中,以使單元測試變得更加容易(並且出於其他原因,這很有意義)。

雖然可以使用已有的單元測試獲取Java類中代碼的代碼覆蓋率數據,但 我沒有辦法知道JSP中存在多少Java代碼 (現有單元測試的代碼覆蓋率為零)。 我們使用的是Intellij的最新版本,盡管我認為解決方案不一定需要受此限制。

我想知道Java代碼的總行數(包括在JSP中找到的行),因此無論是JSP還是Java類中的Java代碼,我都可以獲得一個全面的代碼覆蓋率編號。 有一些跟蹤可以幫助我宣傳單元測試。

是否有一種自動的方法來獲取Java代碼的總行數,無論它存在於JSP還是Java類中?

我不知道一種自動方法,如果有人在那里我會感到驚訝。

  • 就像您提到的那樣,沒有人打算測試scriptlet的代碼覆蓋率,因為scriptlet是可怕的可惡。
  • 這些天沒有編寫腳本腳本,因此不太可能有適合該法案的工具(開源/商業)。

我能想到的一些方法

  • 編寫一個HTML解析器,將抓取小腳本。 由於我懷疑<%= //code =>會轉換為文本格式,因此這可能會變得很困難。 它們不是有效的標記,但是您仍然可以從某些解析中受益。
  • 使用Jasper或等效框架編譯JSP,並使用其API方法獲取有關JSP頁面的scriptlet信息。 (我承認,尋找可以揭示此數據的API方法/成員變量並非易事。)
  • 編寫自己的解析器,該解析器將掃描文件中的<%=字符,並開始為遇到的每個/ n和/ r / n字符計數代碼行,直到達到%>

我認為編寫自己的解析器可能是最簡單的方法。

可能存在另一種方法來解決此問題。 您可以使用Google CodePro之類的工具來審核您的JSP文件。 嘗試創建一個禁止JSP腳本的自定義規則

暫無
暫無

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

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