2011-12-16 68 views
7

我有一個Android項目設置,它的純Java在PC上運行的單元測試項目以及在Emulator上運行的功能/集成測試項目。這兩個使用InstrumentationTestCase2測試用例和Robotium框架。我能夠從Eclipse中運行這兩個,針對我的應用的調試版本,並收集結果等。如何針對發佈版本APK運行Android/Robotium Instrumentation測試用例?

我可以通過Eclipse導出和Ant構建來創建發佈APK。 APK已簽名,zipaligned和混淆。

我想知道如何對版本版本的應用運行這些功能/集成測試,而不是調試版本。我知道我可能會出現一些錯誤,因爲應用程序項目包含一些可能已被Proguard剝離的僅供測試使用的類,但我可以處理它。

我在谷歌搜索和這裏搜索,但沒有運氣。只有一個頁面here與Robotium測試相關,當你只有應用程序的APK,沒有來源。我不確定這會對我有幫助。 如何讓測試項目在發佈APK的設備上運行?

回答

2
  1. 登錄都被測發佈應用程序,並與您的 釋放鑰匙
  2. 安裝測試Robotium應用這兩個應用程序上您的設備
  3. 使用以下命令運行測試:

adb shell am instrument -w com.your.package/android.test.InstrumentationTestRunner

其中com.your.package是您的軟件包名稱。

見Robotium Q &一種更多的信息:http://code.google.com/p/robotium/wiki/QuestionsAndAnswers

正如你提到的,你也可能有一些問題,Proguard的取決於你如何寫測試用例。

+0

目前我不在該項目工作,但答案仍然有用。另外,@Frank已經爲此付出了代價。 請您詳細說明如何繼續? 我的意思是:好吧,說你用相同的(釋放)鍵簽名調試APK和釋放APK。 那你怎麼走得更遠呢?謝謝! – superjos 2013-02-12 09:16:16

1

您需要將ant.properties放入您的目標應用程序和測試應用程序的項目根目錄中。 的ant.properties的內容應該是這樣的: key.alias= key.store.password= key.store= key.alias.password=

+1

你好。謝謝你的回答。我認爲這是創建APK的必要條件(簽名,等等)。該操作已經發生。我之後所做的是對發行版APK進行功能/集成測試。 – superjos 2012-07-17 14:34:08

2

我想知道如何對 我的應用程序的發行版而不是調試版運行這些功能/集成測試。

我遇到了這個問題,同時尋找解決的辦法..

由於這是舊的答案一個老問題,我要給基於搖籃,Android項目的最新答案。

我所做的是:

  1. 讓測試APK針對發佈版本類型運行通過添加這樣的:
android { 
    testBuildType "release" 
} 
  • 附加你的測試apk的proguard規則也是如此
  • buildTypes { 
        release { 
         minifyEnabled true 
         proguardFiles 'proguard-rules.txt' 
         testProguardFile('proguard-rules.txt') 
        } 
    } 
    

    現在嘗試對發佈版本運行測試。由於proguard,您可能仍然遇到錯誤。如果你正在使用Robotium,像我這樣做,你可以在你的ProGuard-rules.txt文件中添加以下行:

    ##--------------- Begin: proguard configuration for Robotium ---------- 
    -keep class com.robotium.** { *;} 
    ##--------------- End: proguard configuration for Robotium ---------- 
    

    希望它能幫助。

    相關問題