Android 在Eclipse中使用自定义InstrumentationTestRunner会导致错误

Android 在Eclipse中使用自定义InstrumentationTestRunner会导致错误,android,unit-testing,Android,Unit Testing,我在Eclipse中有一个单独的测试项目,它已经在命令行和Eclipse中成功运行了一段时间。在使用Jenkins运行测试时,我遇到了标准InstrumentationTestRunner不能以Jenkins支持的xml格式输出的问题。我在互联网上读到过使用定制InstrumentationTestRunner的文章。这在使用ADB的命令行中工作,但在Eclipse中作为Android测试用例运行时失败 我下载了一个定制的检测测试运行程序(com.neenbedankt.android.test

我在Eclipse中有一个单独的测试项目,它已经在命令行和Eclipse中成功运行了一段时间。在使用Jenkins运行测试时,我遇到了标准InstrumentationTestRunner不能以Jenkins支持的xml格式输出的问题。我在互联网上读到过使用定制InstrumentationTestRunner的文章。这在使用ADB的命令行中工作,但在Eclipse中作为Android测试用例运行时失败

我下载了一个定制的检测测试运行程序(com.neenbedankt.android.test),并将其添加到AndroidManifest中,如下所示:

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

    <uses-sdk android:minSdkVersion="7" />

    <instrumentation
        android:name="com.neenbedankt.android.test.InstrumentationTestRunner"
        android:targetPackage="com.testedapplication" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner" />
    </application>    
</manifest>

以下是我在Eclipse中遇到的错误:

未正确配置[测试项目]以运行测试: 在AndroidManifest.xml中找不到instrumentation android.test.InstrumentationTestRunner的targetPackage属性


您可以看到,我已经在那里设置了targetPackage,所以我不确定还能做什么?

因为我看不到您的整个项目设置,所以这里有一些检查列表,我会尝试

  • 您在Eclipse中有单独的测试项目吗?上述检测块是在源项目的清单文件中还是在测试项目的清单文件中

  • 你把街区包括进去了吗

  • 您是否将测试项目的工具块放在块的外部,而将块放在测试项目的应用程序块的内部

  • 您是否尝试过通过“newproject->Android测试项目”在Eclipse中创建一个测试项目,并在添加源代码后更改那里的instrumentation类?如果不更改instrumentation类,它会工作吗

  • 您是否通过“运行方式->Android JUnit测试”在Eclipse中运行测试


  • 如果您已经完成了所有这些,我认为粘贴整个AndroidManifest文件将有助于澄清一点,以及您是否有两个独立的项目。

    啊,到目前为止,我已经能够通过在清单文件中描述android.test.InstrumentationRunner和customer test runner来实现它。我觉得从Eclipse运行时将使用android.test.InstrumentationRunner,从命令行运行时将使用自定义测试运行程序(如果在ant脚本中进行了设置)。

    在AndroidManifest.xml中添加这两个工具

    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.example.myapp" />
    
    <instrumentation
        android:name=".MyRunner"
        android:targetPackage="com.example.myapp" />
    
    
    

    然后转到包资源管理器-->$(您的测试项目$)-->运行方式-->运行配置-->Android JUnit测试-->$(您的测试项目)-->插装运行程序并在那里选择您的运行程序。

    要使eclipse在运行方式为/Android JUnit时默认选择自定义运行程序,只需切换清单文件中的顺序。确保你的是第一个

    <instrumentation
    android:name="*.Custom.TestRunner"
    android:targetPackage="com.*" />
    
    <instrumentation
    android:name="*.InstrumentationTestRunner"
    android:targetPackage="com.*" />
    
    
    
    我编辑了我的原始评论以回答您的问题。在切换到定制测试运行程序之前,我的测试是从命令行和Eclipse进行的。请参见原始问题中我的新编辑。谢谢。我再试了一次,似乎不需要android.test.InstrumentationTestRunner。你要做的就是改变仪器的设置。伙计,我喜欢stackoverflow。