2013-12-11 132 views

回答

10

我一直工作發佈這個問題,以幫助他人避免像我一樣愚蠢地浪費時間!

問題是,當我將Nexus 4升級到Android 4.4 Kitkat時,我決定在Developer's Options設置菜單中激活新的Android RunTime(ART)。

這就是結果!

要運行儀器測試,切換回Dalvik!

我使用的Mockito,Dexmaker和Dexmaker,所有的Mockito運行與儀表的Mockito測試和使用艾瑪獲取覆蓋數據....

毫無疑問,某些更新或方法的變化將在需要未來在Dalvik和/或ART上進行測試....

+0

大觀察。 +1和謝謝。 –

0

我在運行ART時發現了一個解決方法:使用testrunner的選項-e package *

這將正確運行所有的測試,它可以與Mockito,Dexmaker和Dexmaker-Mockito一起使用。

通過Ant運行時,下面是一個例子:

<run-tests-helper emma.enabled="true"> 
    <extra-instrument-args> 
     <arg value="-e" /> 
      <arg value="coverageFile" /> 
      <arg value="${emma.dump.file}" /> 
     <arg value="-e" /> 
      <arg value="package" /> 
      <arg value="*" /> 
    </extra-instrument-args> 
</run-tests-helper> 
+0

不知道Ant在將它傳遞給instrument命令之前是否擴展「\ *」,但命令行上的-e package \ *會給你「TestGrouping:Invalid Package:'\ *'找不到或者沒有測試」 – yogurtearl

1

使用「*」之類@tmuget建議,不會在命令行工作,但作爲建議,但日本的博客文章,它看起來像設置任何運行測試的規範都可以在NoClassDefFound問題上工作。如果你包是COM $財產以後,你可以使用:

adb shell am instrument -w -r -e debug false -e package com 

一些相關的問題看:

Mockito Github

L preview tracker

Dexmaker issue

Use article (in Japanese)

相關問題