我的项目中有测试问题。我已经正确配置了依赖项,但我无法使用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>
答案 0 :(得分:1)
看起来您使用正确的依赖项编译了您的类,但未在运行时指定它们。由于IntelliJ和Eclipse都应该使用相同的配置进行run编译,因此问题是:你是如何运行测试的?
答案 1 :(得分:0)
您使用的任何编辑器都没有问题。
这是从adb shell启动任何活动的一般语法:
adb shell am start -a android.intent.action.MAIN -n com.package.name/com.package.name.ActivityName
所以,当你从机器人调用任何活动时,它必须&#34;扩展活动&#34;。
和&#34;扩展了SherlockActivity&#34;由于上面的语法只需要Activity name,因此无法使用robotium。因此,如果你扩展任何其他东西,它将无法工作。
注意:
[1]首先尝试使用下面的语法
打开您的活动adb shell am start -a android.intent.action.MAIN -n com.calculator/com.calculator.Main
这里&#34;主要&#34;是您的包装中的活动&#34; com.calculator&#34;。
[2]如果这对你有用,那么它将适用于robotium。
我希望这个概念会对你有所帮助。感谢。