2012-10-12 58 views
8

我在Jenkins有一個項目,我想創建一個JaCoCo代碼覆蓋率報告。 如果我在本地運行jacoco:test然後jacoco:report,它會在myproject/target/scala-2.9.1/jacoco中創建正確的文件(.exec,.class和sources),因此它可以工作。Jenkins和JaCoCo與sbt

然而,當建立在jenkins上時,這隻會創建classes目錄,這意味着它拾取代碼,但不包含覆蓋它的測試,因此我獲得0%的代碼覆蓋率。

有沒有人有jacoco這樣用sbt工作?

回答

0

您沒有提供關於Jenkins作業配置的更多信息,因此我正在做一些假設,但是您可以在Jenkins作業中添加/執行多個構建步驟。構建步驟像運行Maven或運行任意腳本一樣運行。

第一個構建步驟可以是執行「jacoco:test jacoco:report」來運行Jacoco,然後第二個構建步驟可以是您正在查找jacoco.exec文件的任何其他運行的Maven構建步驟。

2

我試圖啓動一個新的Scala項目時遇到了同樣的問題。嘗試了多種路徑配置之後,我能夠找出解決方案。

路徑到類目錄的默認值是**/classes。我懷疑問題是該模式允許匹配target/scala-X.XX/classes/target/scala-X.XX/jacoco/classes/

將類目錄路徑更改爲target/*/classes允許Jenkins插件開始報告正確的覆蓋信息。

+0

令人驚歎!感謝這篇文章,我發現我需要使用'**/target/*/classes'。 – kilo

+0

我面臨同樣的問題。你能詳細告訴我們需要設置「目標/ * /類」的屬性嗎? –