Eclipse中的Android单元测试:“无法启动测试”

时间:2011-04-01 12:40:52

标签: android eclipse unit-testing

我刚开始尝试在基本上是我的第一个Android应用程序中设置一些单元测试。我有一段时间为此寻找资源,但最终能够把我希望正确的道路上的东西凑到一起。

首先,这就是我所做的。

在Eclipse中,我右键单击了我想为其创建测试项目的项目。 我选择了AndroidTools - >新测试项目 我填写了必要的信息,为新项目选择../MyApp/tests的位置,并选择MyApp作为要测试的项目。其他所有内容都是默认设置。

在执行此操作时,我收到以下错误信息:

  

[2011-04-01 08:13:02 - WPMSTest]手动修改R.java!恢复生成版本!

但一切似乎都没问题。我的测试文件夹中有一个新的源代码树。

所以我尝试通过RunAs执行它(首先在硬件上,然后在模拟器上) - > Android jUnit测试。

在两次运行中,我在我的eclipse控制台中收到了以下内容:

  

[2011-04-01 08:23:04 - WPMSTest]在设备模拟器-5554上启动检测android.test.InstrumentationTestRunner
[2011-04-01 08:23:04 - WPMSTest]无法启动测试

我的两个清单文件:

WPMSTest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.WPMS.test"
  android:versionCode="1"
  android:versionName="1.0">

<instrumentation android:targetPackage="com.WPMS" android:name="android.test.InstrumentationTestRunner" />
<application android:icon="@drawable/icon" android:label="@string/app_name">

<uses-library android:name="android.test.runner" />
</application>

WPMS:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.WPMS"
  android:versionCode="1"
  android:versionName="1.0">
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher_wpms">
    <activity android:name=".WPMS"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>    

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

我希望有人之前见过这样的事情,并且可以解释我做错了什么。如果您需要更多文件,请告诉我,我一定会发帖。

谢谢!

4 个答案:

答案 0 :(得分:15)

我在测试项目中错过了一个TestSuite。一旦我的AllTests类扩展了TestSuite,我就错过了。

答案 1 :(得分:3)

对我来说问题是我使用的是JUnit 4.当我改为JUnit 3时,它开始工作了。我希望这会有所帮助。

答案 2 :(得分:0)

[2011-04-01 08:13:02 - WPMSTest] R.java was modified manually! Reverting to generated version!

在R.java文件中手动进行更改时出现此错误。有时,当您清理项目时,R.java文件会丢失。在这种情况下,您必须复制相同程序的R.java(如果存储在某处作为副本)或创建一个完整的新项目。

对于您的第二个问题,当我在设备上测试我的应用时,我也遇到了类似的错误。我不得不使用$ adb在shell中进行更改。然后设备得到了认可。

答案 3 :(得分:0)

我遇到了同样的问题:JUnit 3 TestCase工作正常,但是当运行JUnit 4 TestCase时,我得到了“无法启动测试”错误。

但是在遵循Ken的建议之后,即使JUnit 4测试类扩展TestCase,并使用“test”前缀重命名测试方法,测试启动并运行测试!