gpt4 book ai didi

android - 无法让 Android ServiceTestCase 运行

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:50 25 4
gpt4 key购买 nike

我无法获得任何扩展 ServiceTestCase 以运行的测试用例。没有错误,它们只是没有被执行。

其他扩展 AndroidTestCase 的测试用例会运行。

项目设置如下:

我有一个包含服务的 Android 库。它的 list 文件如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.something.android"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="9"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application>
<service android:name=".ExampleService"
android:exported="false"
android:process=":example_service">
</service>
</application>
</manifest>

Android 库项目在文件夹 test 中包含一个测试项目(使用 Android 工具创建)

这包含一个AndroidManfiest.xml如下

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.something.android.tests"
android:versionCode="1"
android:versionName="1.0">
<application>
<uses-library android:name="android.test.runner" />
</application>
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.something.android.tests"
android:label="Tests for com.something.android"/>
</manifest>

我在测试项目中也有一个 build.properties,其中包含:

tested.project.dir=..android.library.reference.1=..

我通过运行 ant clean run-tests 来执行测试。

我需要做什么才能运行 ServiceTestCase 测试?

提前致谢。

最佳答案

确保为 ServiceTestCase 提供默认构造函数。 Eclipse 为您生成的那个可能不合适。例如,在我的案例中,Eclipse 为我生成了:

public class MyServiceTestCase extends ServiceTestCase<MyService> {

public MyServiceTestCase(Class<MyService> serviceClass) {
super(serviceClass);
}
...
}

Android JUnit 无法实例化 MyServiceTestCase,但它没有提示,我只能看到没有运行的测试用例。

因此我将构造函数替换为以下内容,并且效果很好:

public class MyServiceTestCase extends ServiceTestCase<MyService> {

public MyServiceTestCase() {
super(MyService.class);
}
...
}

希望它对你有用。

关于android - 无法让 Android ServiceTestCase 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7855479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com