我刚开始尝试在基本上是我的第一个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" />
我希望有人之前见过这样的事情,并且可以解释我做错了什么。如果您需要更多文件,请告诉我,我一定会发帖。
谢谢!
答案 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”前缀重命名测试方法,测试启动并运行测试!