10

我为我的应用程序开发了一套用 Scala 编写的使用 Robotium 库的小型 Android 测试。出于所有目的和目的,该套件是一个标准的 Android JUnit 测试项目,如果从 Eclipse 启动,则可以成功运行。

我已经使用 sbt android-plugin 成功构建并运行了我的主要 Android 应用程序。主要应用程序位于[ProjectDir]/src/main. 我还能够成功构建位于该目录中的Android 测试应用程序。[ProjectDir]/tests/src/main我检查了模拟器,测试应用程序似乎已使用 android-plugin 的tests/android:install-emulator命令正确安装。但是,当我尝试通过 运行测试项目时sbt tests/android:test-emulator,我得到:

...
Test results for InstrumentationTestRunner=
Time: 0.001

OK (0 tests)

如何让 sbt android-plugin 识别项目包含 JUnit 测试并运行它们?

4

1 回答 1

1

这里使用的命名约定与普通的 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 结束。

于 2012-01-30T16:49:25.217 回答