Android Eclipse插件:未指定Instrumentation Test Runner

时间:2009-06-17 23:09:04

标签: android eclipse unit-testing junit

尝试使用Android项目从Eclipse运行单元测试时出现此错误。在Android偏好设置中,Instrumentation Test Runners列表为空。

  

[2009-06-17 23:57:51 - MyApp]错误:   应用程序未指定   android.test.InstrumentationTestRunner   仪表或不申报   uses-library android.test.runner

它也恼人地决定,因为我试图进行一次单元测试,这就是我一直想做的事情。

7 个答案:

答案 0 :(得分:111)

您可能遗漏了uses-library中的instrumentationAndroidManifest.xml个节点:

<manifest ...>
    <application ...>
        <!-- ... -->
        <uses-library android:name="android.test.runner" />
    </application>
    <instrumentation android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="your.package"
        android:label="your tests label" />
</manifest>

答案 1 :(得分:59)

Run Configuration中你可能有Android JUnit Test,如果其中有任何新的启动配置条目,你将其删除,然后运行它将运行的应用程序。

注意 - 如果您在向Josef添加正确的行之前尝试运行测试用例,这可能是解决方案,如Josef的答案中所述。如果您已完成此操作,请删除配置(将抱怨其标题中未指定任何检测测试运行器),然后再次将其作为Android Junit测试运行,它将创建一个有效的配置,以获取正确的内容已添加到清单中(请参阅Josef的答案)。

答案 2 :(得分:18)

我在本次讨论中注意到的一件事可能是让一些人绊倒你需要确保清单中的“instrumentation”元素是“manifest”的子元素,而不是“application”的子元素。 (这里的例子是正确的,但这很容易混淆。)

http://developer.android.com/guide/topics/manifest/instrumentation-element.html

如果您将仪器内容放在应用程序中,它将不会被拾取,并且您在Eclipse ADT插件中选择的仪器运行器可能是空白的。 (但不会抛出或显示错误等)

答案 3 :(得分:9)

只需在eclipse IDE中右键单击您的测试类,然后单击“Run As”。选择“运行配置”后,将在eclipse中启动Confiuration窗口,您需要单击“Instrumentation Runner”旁边的单选按钮,然后从下拉列表中选择已配置的Instrumentation Runner。现在单击“应用”,然后单击“运行”。       我认为这将解决您的问题。

谢谢, Smruti

答案 4 :(得分:2)

这不在你的代码中,只是日食是一个小小的车。在您的运行配置中,它可能尝试运行jUnit测试,但选择Run Application并且该错误将消失。

答案 5 :(得分:1)

除了确保在测试应用的清单中声明以下项目之外,请在“运行配置”中检查“Instrumentation runner”字段设置为

"com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner". 

这是我在弄清楚我测试的原因时遇到的问题。

清单:

<instrumentation android:name="android.test.InstrumentationTestRunner"
 android:targetPackage="your.package"
 android:label="your tests label" />

 and...

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

答案 6 :(得分:0)

问题是当你创建项目时,你会有一个AVD,所以这些配置会丢失。我建议的方法是先创建AVD,然后创建android项目:)。

如果您已经创建了项目,如果您编写的代码不多,我建议删除它并创建一个新代码。