我正在尝试执行扩展我已经制作的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'
答案 0 :(得分:1)
所以我昨天能够解决我的问题......
基本上,在Android Studio中将package_name变为红色是正常的。重要的是,不要将<uses-library android:name="android.test.InstrumentationTestCase"/>
放在<application>
标记下,放置<uses-library android:name="android.test.runner"/>