2012-10-23 97 views
6

我有一个单独的测试项目在Eclipse已经在这两个命令行和Eclipse一段时间运行成功。在使用Jenkins运行我的测试时,我遇到了标准InstrumentationTestRunner不以Jenkins支持的xml格式输出的问题。我在互联网上阅读过使用自定义InstrumentationTestRunner。这可以在使用ADB的命令行中工作,但在以Android Test Case运行时在Eclipse中失败。使用自定义InstrumentationTestRunner导致错误

我已经下载了一个自定义的仪器测试运行(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中出现错误:

[测试项目]未正确配置运行测试: 用于仪表android.test.InstrumentationTestRunner在AndroidManifest.xml中targetPackage属性找不到!

你可以看到,我已经设置targetPackage那里,所以我不知道还有什么我能做什么?

回答

12

在您的AndroidManifest.xml中添加两个工具。

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

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

然后去包资源管理器 - > $(测试Prject $) - >运行方式 - >运行配置 - > Android的JUnit测试 - > $(测试项目) - >仪表跑步者并选择你的跑步者。

+2

我再次尝试,似乎android.test.InstrumentationTestRunner是不需要的。你需要做的只是改变Instrumentation Runner设置。 –

+2

男人,我喜欢stackoverflow。 –

0

由于我看不到您的整个项目设置,这里有一些我会尝试的检查清单。

  1. 您是否在Eclipse中有单独的测试项目?上述检测程序块是否在源项目的清单文件或测试项目的清单文件中?

  2. 是否包含< uses-library android:name =“android.test.runner”/ > block?

  3. 你把测试项目的仪器块<应用>块外面和<使用库测试项目的应用程序块内>块?

  4. 你尝试通过“新建项目 - > Android的测试项目”在Eclipse中创建一个测试项目,并添加源代码后,只是改变了测试类呢?如果你不改变仪器类,它是否工作?

  5. 你做“ - > Android的JUnit测试运行方式”运行Eclipse中的测试?

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

+0

我编辑了我的原始评论来回答你的问题。在切换到自定义测试运行器之前,我的测试可以在命令行和Eclipse中使用。在原始问题中查看我的新编辑。谢谢。 – SpecialEd

0

啊到目前为止我已经能够得到它同时具有android.test.InstrumentationRunner亚军,并在清单文件中描述的客户测试运行工作。我似乎从Eclipse运行将使用android.test.InstrumentationRunner并从命令行运行将使用自定义测试运行器,如果它在蚂蚁脚本中的设置。

1

为了让eclipse默认选择自定义运行程序,当以/ android junit运行时 - 只需在清单文件中切换顺序即可。确保你的第一个

<instrumentation 
android:name="*.Custom.TestRunner" 
android:targetPackage="com.*" /> 

<instrumentation 
android:name="*.InstrumentationTestRunner" 
android:targetPackage="com.*" /> 
相关问题