2016-09-07 70 views
0

我們已經設置了Gradle來構建和測試我們的Android應用程序。現在,我們遇到了問題,那搖籃測試運行失敗後重複性一類是在項目的某個地方改名:課堂重命名後Gradle測試運行失敗

Execution failed for task ':PROJ:compileDebugUnitTestJavaWithJavac'. 
> Unable to read class file: '/path/to/class/with/the/name/before/renaming.class' 

此錯誤是可重複兩..

  • 本地(運行來自Android Studio的gradle測試,或使用./gradlew test的命令行)和
  • 遠程,當測試運行在我們的CI(TeamCity服務器)上時。

什麼解決問題,手動觸發本地重建(例如Android Studio中構建>重建項目)或重新運行帶有標誌clean all files in the checkout directory before the build集TeamCity的任務。

有沒有什麼辦法讓我們的測試在課程重命名後不會失敗?

雖然上面的解決方案很簡單,但有點煩人的是,一個簡單的重命名使它回到我們的repo會炸燬CI構建...我們真的希望那些保持綠色。 :)

回答

1

這是Gradle 2.14和2.14.1中的known issue,在即將發佈的Android Gradle插件版本中將會有一個解決方法。

作爲一種解決方法,您可以爲您的項目做一個乾淨的構建。無論如何,對於CI構建來說,乾淨的構建是一個好主意。

1

您可以使用TC的Swabra構建功能在每次構建之前或之後清除工作目錄,以便所有生成的文件都被清除,構建始終以乾淨的工作副本開始。對於可重現的構建來說,這是我認爲必須使用的功能。

或者,您當然也可以將clean Gradle任務添加到您的TC配置,以便Gradle清除以前的構建工件。但是如果使用TC,我更喜歡Swabra,因爲它可靠地恢復VCS狀態。

相關問題