1

我在项目中遇到了测试问题。我已经正确配置了依赖项,但我无法使用 Robotium 运行测试。当我的活动仅扩展活动时-一切都很好,当我添加“扩展 SherlockActivity”时,我得到了

java.lang.RuntimeException: Exception during suite construction
at android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.testSuiteConstructionFailed(TestSuiteBuilder.java:238)

Caused by: java.lang.NoClassDefFoundError: com.calculator.Main (example project from Robotium www). 

我曾尝试在 Intellij 和 Eclipse 中运行测试。两个 IDE 都给出了相同的结果。

编辑:这是我的清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.calculator.test"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">

    <uses-library android:name="android.test.runner" />
    </application>
    <uses-sdk android:minSdkVersion="8" />
    <instrumentation android:targetPackage="com.calculator" android:name="android.test.InstrumentationTestRunner" />
</manifest> 
4

2 回答 2

1

看起来您使用正确的依赖项编译了您的类,但没有在运行时指定它们。由于 IntelliJ 和 Eclipse 都应该使用相同的配置来运行类似编译,所以问题是:您是如何运行测试的?

于 2012-10-08T12:29:24.297 回答
0

您使用的任何编辑器都没有问题。

这是从 adb shell 启动任何活动的一般语法:

adb shell am start -a android.intent.action.MAIN -n com.package.name/com.package.name.ActivityName

因此,当您从机器人调用任何活动时,它必须“扩展活动”。

并且“ extends SherlockActivity ”不适用于robotium,因为上述语法仅需要活动名称。因此,如果您扩展任何其他内容,它将无法正常工作。

笔记 :

[1] 首先尝试使用以下语法打开您的活动

adb shell am start -a android.intent.action.MAIN -n com.calculator/com.calculator.Main

这里“ Main ”是您的包“ com.calculator ”中的活动。

[2] 如果这对您有用,那么它将适用于机器人。

我希望这个概念对你有所帮助。谢谢。

于 2012-10-08T13:23:02.997 回答