編輯:高級開發
下面詳細的說明一下android問題,所謂的android:android是基於Linux內核的軟件平台和操作系統,早期由Google開發,後由開放手機聯盟Open Handset Alliance)開發。
在介紹具體的命令之前,我們先理解一下單元測試的層次。一組單元測試可以被組織成若干個TestSuite。每個TestSuite包含若干TestCase(某個繼承android.jar的junit.framework.TestCase的類)。每個TestCase又包含若干個Test(具體的test方法)。
如果假設com.android.foo是你的測試代碼的包的根。當執行以下命令時,會執行所有的TestCase的所有Test。測試的對象就是在Target Package中指定的包中的代碼: adb shell am instrument -w com.android.foo/android.test.InstrumentationTestRunner 如果你想運行一個TestSuite。首先繼承android.jar的junit.framework.TestSuite類,實現一個TestSuite(com.android.foo.MyTestSuite),然後執行以下命令執行此TestSuite。
其中的-e表示額外的參數,語法為-e [arg1] [value1] [arg2] [value2] …這裡用到了class參數。 如果僅僅想運行一個TestCase(比如叫com.android.foo.MyTestCase),則用以下命令: 如果僅僅想運行一個Test(比如就是上面MyTestCase的testFoo方法),很類似的,就這樣寫: 然後,所有的測試結果會輸出到控制台。
並會做一系列統計,如標記為E的是Error,標記為F的是Failure,Success的測試則會標記為一個點。這和JUnit的語義一致。如果希望斷點調試你的測試,只需要直接在代碼上加上斷點,然後將運行命令參數的-e後邊附加上debug true後運行即可。
更加詳細的內容可以看InstrumentationTestRunner的Javadoc。我希望android能盡快有正式的文檔來介紹這個內容。 在android.test.annotation包裡定義了幾個annotation,包括@LargeTest,@MediumTest,@SmallTest,@Smoke,和@Suppress。
你可以根據自己的需要用這些annotation來對自己的測試分類。在執行單元測試命令時,可以在-e參數後設置“size large”/ “size medium”/ “size small”來執行具有相應標記的測試。
特別的@Supperss可以取消被標記的Test的執行。以上步驟中,在android自帶的例子中,我發現它有兩個manifest.XML。也就是說在步驟3中源代碼和測試代碼分別生成了兩個不同的包。
然後步驟4利用adb install命令安裝到了虛擬機上。由於我沒有找到Eclipse ADT有辦法可以為一個只有Instrumentation,沒有Activity的Application打包並安裝,於是采用了略微不同的辦法完成了這個工作。下面將一一詳細介紹整個過程。
內容提供程序(Provider)組件從一個應用到其他請求提供數據。通過 ContentResolver 類的方法這樣的請求處理。內容提供程序使用不同的方式來存儲
最近,關於Adobe在android平台上動作頻頻。昨天我們報道了Android版Flash 10.1發布 全面支持android 2.2的消息,今天又有消息稱,Ado
android應用程序是由Java語言開發的也只能用Java語言開發,Google對android采用了一種全面霸權式的管理,完全不是其他開源軟件的開發方式,一切都由G
Action bar及Dashboard能在大多數android程序項目中為用戶提供界面設計圖案。Dashboard項目組已經開始著手於一個項目,以幫助開發者們更快地使