我为我的应用程序开发了一套使用Scrum的
Android测试,它使用Robotium库.该套件适用于所有意图和目的,标准的Android JUnit测试项目,如果从Eclipse启动,则可以成功运行.
我已经成功构建并运行我的主要Android应用程序与sbt android-plugin.主要应用程序位于[ProjectDir] / src / main中.我也能够成功地在[ProjectDir] / tests / src / main目录下的build my Android test application.我检查了仿真器,测试应用程序似乎已经正确安装了android-plugin的测试/ android:install-emulator命令.但是,当我尝试通过sbt tests / android:test-emulator运行测试项目时,我得到:
... Test results for InstrumentationTestRunner= Time: 0.001 OK (0 tests)
我怎么能得到sbt的android-plugin来识别该项目包含JUnit测试并运行它们?
解决方法
这里使用的命名约定与正常的JUnit相同,因此您需要将测试命名为xxxTest.class.他们还需要扩展TestCase(AndroidTestCase,InstrumentationTestCase等).
要重申,eclipse会运行一个命令,看起来像:
adb shell am instrument -w -e class com.android.foo.FooTest,com.android.foo.TooTest com.android.foo/android.test.InstrumentationTestRunner
它会将类名追加到命令中,因此命名约定可能不适用.
如果你从sbt运行,它将运行
adb shell am instrument -w com.android.foo/android.test.InstrumentationTestRunner
这将找到应用程序com.android.foo的程序包名称下的所有类,并使用someClassNameTest完成.