簡體   English   中英

測試覆蓋在 IntelliJ IDEA 中不起作用

[英]Test coverage not working in IntelliJ IDEA

運行具有覆蓋率的應用程序時,未顯示覆蓋率。 我發現我的日志與工作機器日志的區別是覆蓋代理。jar沒有記錄在我的控制台日志中。 有誰知道修復?

我正在運行 Intellij IDEA Ultimate 2019.2.1 和 JDK 版本 1.8.221。 我嘗試了所有選項,例如卸載 IntelliJ,也嘗試了社區版,降級到較低版本,將 JDK 版本更改為更高的 9 和更低的 1.8.211,檢查了插件,還刪除了 Intellij 設置文件夾,但它們都不起作用。 我聯系了 IntelliJ 支持團隊,他們還建議刪除 IntelliJ 設置文件夾,但這沒有用。

這是在覆蓋模式下運行時的日志。 在這里,我們看不到覆蓋代理 jar 調用日志。

"C:\Program Files\Java\jdk1.8.0_221\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Users\<User> Baskota\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\192.6603.8\lib\idea_rt.jar=52886:C:\Users\<User> Baskota\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\192.6603.8\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\<User> Baskota\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\192.6603.8\lib\idea_rt.jar;C:\Users\<User> Baskota\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\192.6603.8\plugins\junit\lib\junit-rt.jar;C:\Users\<User> Baskota\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\192.6603.8\plugins\junit\lib\junit5-rt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jaccess.jar;C:\Program 

這是在具有相同 IntelliJ IDEA 版本和 JDK 版本的不同機器上運行的同一項目的控制台日志。 這里覆蓋工作正常,日志有覆蓋代理 jar 調用日志。

"C:\Program Files\Java\jdk1.8\bin\java.exe" -ea -javaagent:C:\Users\<User>\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\192.6262.58\lib\intellij-coverage-agent-1.0.508.jar=C:\Users\<User>\AppData\Local\Temp\coverage1args -Didea.test.cyclic.buffer.size=1048576 -javaagent:C:\Users\<User>\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\192.6262.58\lib\idea_rt.jar=63530:C:\Users\<User>\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\192.6262.58\bin -Dfile.encoding=UTF-8 -classpath "C:\Users\<User>\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\192.6262.58\lib\idea_rt.jar;C:\Users\<User>\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\192.6262.58\plugins\junit\lib\junit-rt.jar;C:\Users\<User>\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\192.6262.58\plugins\junit\lib\junit5-rt.jar;C:\Program Files\Java\jdk1.8\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8\jre\lib\ext\jaccess.jar;C:\Program 

有沒有人遇到過這種奇怪的問題? 我的報道一直有效,直到幾天前。

如果coverage庫的路徑包含空格,則代碼覆蓋率可能無效。 您可以通過idea.log中的以下行告訴它:

2019-08-31 19:30:17,148 [ 130152]   INFO - ij.execution.JavaExecutionUtil - agent not used since the agent path contains spaces: C:\Users\Some User Name With Spaces\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\192.6603.8\plugins\coverage\lib
One can move the agent libraries to a directory with no spaces in path and specify its path in idea.properties as java.test.agent.lib.path=<path> 

解決方法是將指定的lib目錄復制到一個沒有空格的新位置,例如c:\\coverage-lib 然后在Help | 編輯自定義屬性指定此新位置:

java.test.agent.lib.path=c:/coverage-lib

您還需要將IDEA_HOME\\lib\\intellij-coverage-agent-1.0.508.jar (版本可能不同)復制到沒有空格的相同位置。

重啟IntelliJ IDEA。

我也遇到了這個問題。 對我來說,問題是我的 package 測試名稱 class 與 package 服務名稱 ZA42F2ED4F8EBC66 修復這些以相互匹配為我解決了這個問題。

暫無
暫無

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

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