2017-02-14 66 views
1

據:的IntelliJ代碼覆蓋率亞軍 - 無頭

https://intellij-support.jetbrains.com/hc/en-us/community/posts/206842605-Running-IntelliJ-code-coverage-headless-on-Jenkins-

有可能在一具無頭環境中使用的IntelliJ代碼覆蓋亞軍 - 即詹金斯。

這是很好的,因爲IntelliJ報告的新groovy代碼比例如:的Cobertura。我還可以從Grails測試中收集信息 - 單元和集成。然而,我不知道如何在Jenkins上設置它 - gradle,maven,自定義構建腳本或其他。

的IntelliJ時運行Grails的測試中,它觸發以下命令:

C:\Program Files\Java\jdk1.7.0_79\bin\java 
-XX:+TieredCompilation 
-XX:TieredStopAtLevel=1 
-XX:CICompilerCount=3 
-Dgrails.full.stacktrace=true 
-Djline.WindowsTerminal.directConsole=false 
-Dgrails.build.listeners=org.jetbrains.groovy.grails.rt.GrailsIdeaTestListener 
-Didea.launcher.port=7533 
"-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.3\bin" -classpath C:\Users\xxx\AppData\Local\Temp\classpath.jar 
-Dfile.encoding=UTF-8 com.intellij.rt.execution.application.AppMain org.grails.cli.GrailsCli test-app -echoOut 

表明的IntelliJ應安裝運行無頭。是否有可能在無頭環境中執行上述命令?

我試圖拆包的IntelliJ和通過執行以下(略有修改爲Linux)命令:

java 
-XX:+TieredCompilation 
-XX:TieredStopAtLevel=1 
-XX:CICompilerCount=3 
-Dgrails.full.stacktrace=true 
-Djline.WindowsTerminal.directConsole=false -Dgrails.build.listeners=org.jetbrains.groovy.grails.rt.GrailsIdeaTestListen r 
-Didea.launcher.port=7533 
-Didea.launcher.bin.path=/home/jenkins/idea/bin -classpath /tmp/classpath.jar 
-Dfile.encoding=UTF-8 org.grails.cli.GrailsCli test-app -echoOut 

它失敗:

Error: Could not find or load main class com.intellij.rt.execution.application.AppMain即使idea_rt.jar加入到命令「CP 「國旗。

這是一個鵝追逐,或可以完成?

回答

0

您是否在Windows上檢查classpath.jar?該文件是自動生成的,並通過Manifest鏈接很多jar,以避免操作系統限制最大命令行長度。您的/tmp/classpath.jar要麼不存在,要麼沒有正確鏈接依賴關係。

最後的類路徑將包括從lib目錄從輸出目錄和依賴,插件罐,等等。換句話說,運行應用程序所需的一切將不會發生任何生成的classpath.jar文件鏈接幾個IDE罐子,工程類。

+0

我在指定的路徑中查找它,但它不在那裏。所以我認爲它是生成運行時或類似的東西 - 不知道它有什麼目的。但是隨着你的解釋,這可能是需要的。將在Windows上進一步研究它:) – Hoof

+1

該進程停止時將刪除此文件。在應用程序中放置一個斷點,以便在刪除文件之前找到該文件。 – CrazyCoder

+0

Phew。這是一個文件的地獄......不知道這將永遠「得到好」在Linux :) – Hoof