我在Eclipse中有一个单独的测试项目,它已经在命令行和Eclipse中成功运行了一段时间。在使用Jenkins运行我的测试时,我遇到了标准InstrumentationTestRunner不以Jenkins支持的xml格式输出的问题。我已经在互联网上阅读使用自定义InstrumentationTestRunner。这在使用ADB的命令行中有效,但在作为Android测试用例运行时在Eclipse中失败。
我已经下载了一个自定义检测测试运行器(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中检测android.test.InstrumentationTestRunner的targetPackage属性!
你可以看到我在那里设置了targetPackage,所以我不确定我还能做什么?
答案 0 :(得分:12)
在AndroidManifest.xml中添加两个工具。
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.myapp" />
<instrumentation
android:name=".MyRunner"
android:targetPackage="com.example.myapp" />
然后转到Package explorer - &gt; $(您的测试项目$) - &gt;运行方式 - &gt;运行配置 - &gt; Android JUnit测试 - &gt; $(您的测试项目) - &gt; Instrumentation Runner并在那里选择你的跑步者。
答案 1 :(得分:1)
要在运行/ android junit时默认选择自定义运行器 - 只需在清单文件中切换顺序即可。确保你的第一个
<instrumentation
android:name="*.Custom.TestRunner"
android:targetPackage="com.*" />
<instrumentation
android:name="*.InstrumentationTestRunner"
android:targetPackage="com.*" />
答案 2 :(得分:0)
由于我无法看到您的整个项目设置,因此我会尝试一些检查清单。
您在Eclipse中有一个单独的测试项目吗?以上检测块是源项目的清单文件还是测试项目的清单文件中?
您是否包含&lt; uses-library android:name =“android.test.runner”/&gt;方框?
您是否将测试项目的检测块放在&lt; application&gt;之外?块和&lt; uses-library&gt;阻止测试项目的应用程序块?
您是否尝试通过“新建项目 - &gt; Android测试项目”在Eclipse中创建测试项目,并在添加源代码后只更改了测量类?如果您不更改检测类,它是否有效?
您是否通过“运行方式 - &gt; Android JUnit测试”在Eclipse中运行测试?
如果您已经完成了所有这些操作,我认为粘贴整个AndroidManifest文件将有助于澄清一下,以及您是否有2个单独的项目。
答案 3 :(得分:0)
到目前为止,我已经能够通过同时拥有android.test.InstrumentationRunner运行器和清单文件中描述的客户测试运行器来实现它。我似乎从Eclipse运行将使用android.test.InstrumentationRunner并从命令行运行将使用自定义测试运行器,如果它在ant脚本中设置。