我已經想出了自己的問題。這實際上很簡單,因爲我模仿了螞蟻測試的行爲。
想法是,無論何時運行ant test
,它都會調用adb shell
命令並觸發儀器測試運行器am instrument
以及其他參數。可以定製參數以定義將測試哪些類或包。
的解決方法是在你的custom_rules.xml
定義target
(我用macrodef
這樣我就可以重新使用這個對於其他目標)執行此操作。
<macrodef name="test-class">
<attribute name="class"/>
<sequential>
<echo level="info">Running tests for @{class}</echo>
<exec executable="${adb}" failonerror="false">
<arg line="${adb.device.arg}"/>
<arg value="shell"/>
<arg value="am"/>
<arg value="instrument"/>
<arg value="-w"/>
<arg value="-e"/>
<arg value="class"/>
<arg value="@{class}"/>
<arg value="com.example.application/${test.runner}"/>
</exec>
</sequential>
</macrodef>
所以,如果你想要一個Ant命令,如測試例子測試.tests.ExampleTest測試用例,你可以將它定義爲這樣的:
<target name="test-example">
<test-class class="com.example.application.tests.ExampleTest />
</target>
,然後運行它作爲
ant clean debug install test-example
或只是
ant test-example
哦,這不是Robotium獨有的,因爲Robotium實際上是建立在Android提供的現有測試框架之上的。