在Android Studio中执行扩展AndroidTestCase的测试类

时间:2015-10-07 03:50:13

标签: java android unit-testing junit

我正在尝试执行扩展我已经制作的AndroidTestCase的测试类,但显然我一直在收到以下错误:

No apk changes detected. Skipping file upload, force stopping package instead.
DEVICE SHELL COMMAND: am force-stop package_name 
Running tests 
Test running started
Test running failed: Unable to find instrumentation info for:
ComponentInfo{package_name/android.test.InstrumentationTestRunner}
Empty test suite.

我记得我发现的唯一解决方案是我需要在运行/调试配置中指明我的InstrumentationTestRunner。但即使我已经指定了Android API 21的仪器运行器,我仍然会收到上面提到的错误。其他解决方案指出在build.gradle中添加一些信息但由于我的Android项目是由IBM MobileFirst生成并且不支持Gradle,因此无法实现。

对于我的代码,请查看以下内容:

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;

import <package>.R;
import <package>.<Class to be tested>;

public class SampleTest extends AndroidTestCase {

    @SmallTest
    public void testHidePartsOfLicense(){
        <Class to be tested> sample = new <Class to be tested>();

        Bitmap bitmap = BitmapFactory.decodeResource(super.getContext().getResources(),
            R.drawable.testImage);

        String imageString = sample.addShapesInBitmapImage(bitmap);

        assertNotNull(imageString);
    }
}

或者还有其他方法让我能够使用位图图像执行简单的JUnit测试吗?尽管我想使用java.awt.image软件包,但我还是认为在Android Studio中也不可能。

[编辑]

所以我尝试在AndroidManifest.xml

中添加以下代码

<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="package_name"/> <uses-library android:name="android.test.InstrumentationTestCase"/>

但显然我的package_name出现了问题,并显示了Cannot resolve symbol 'package_name'

如果我尝试执行测试,则会显示以下错误: Test running failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException'

1 个答案:

答案 0 :(得分:1)

所以我昨天能够解决我的问题......

基本上,在Android Studio中将package_name变为红色是正常的。重要的是,不要将<uses-library android:name="android.test.InstrumentationTestCase"/>放在<application>标记下,放置<uses-library android:name="android.test.runner"/>