從2個項目中構建Eclipse中的Android項目: Project 1是一個Java庫,在Android上編譯得很好。 項目2是庫的測試用例,實質上是擴展了AndroidTestCase
的類並將結果輸出到Android控制檯。 項目1是一個Java項目,項目2是一個取決於項目1的Android項目。從Eclipse執行android testcase與控制檯遠程工具
問題描述:如果我將Eclipse作爲Android JUnit測試執行測試,則它們運行正常,沒有錯誤。但是,如果我想通過命令行再次執行它們:
adb shell am instrument -w bla.bla/android.test.InstrumentationTestRunner
我得到了很多的logcat的
Cannot load class. Make sure it is in your apk. Class name: xyz
java.lang.ClassNotFoundException: xyz
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:234)
at android.test.ClassPathPackageInfoSource.createPackageInfo
....
Caused by: java.lang.ClassNotFoundException: xyz in loader
dalvik.system.PathClassLoader[/system/framework/android.test.runner.jar:/data/app/bla.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
....
錯誤。
評論: Eclipse安裝.apk。 後來我執行相同的已安裝的.apk,所以可用的類必須相同。 類動態請求Class c = Class.forName("xyz")
。
所以我的問題是,Eclipse如何執行不同的安裝.apk,以便在運行時找到正確的類?
我可以推薦一種更好的方式來測試你的Android應用程序嗎?我使用這個,它很棒:http://pivotal.github.com/robolectric/。沒有模擬器,沒有單獨的測試項目......我可以做TDD,快速迭代。 –