我目前正在使用ADT在Eclipse(2018-09)中处理旧版Android项目,该项目使用ownCloud库将文件上传和下载到ownCloud实例。我正在尝试实施一些UI单元测试,以执行一些基本的UI操作,例如单击按钮等。
我已经在Eclipse工作区中创建了一个测试项目,其名称为要测试的项目,后缀为“ test”(根据本教程https://stuff.mit.edu/afs/sipb/project/android/docs/tools/testing/activity_test.html)
我有一个简单的测试类,如下所示:
package com.mynamespace.test;
import com.mynamespace.activity.MainActivity;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.SmallTest;
import android.widget.Button;
public class TransmissionTests extends ActivityInstrumentationTestCase2<MainActivity> {
private Button upload1Button = null;
private Button upload2Button = null;
private Button download1Button = null;
private Button download2Button = null;
private MainActivity mainActivity = null;
public TransmissionTests(Class<MainActivity> name) {
super(name);
}
@Override
protected void setUp() throws Exception {
super.setUp();
mainActivity = getActivity();
upload1Button = mainActivity.getButtonUpload1();
upload2Button = mainActivity.getButtonUpload2();
download1Button = mainActivity.getButtonDownload1();
download2Button = mainActivity.getButtonDownload2();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
@SmallTest
public void testUpload1(){
assertTrue("this is a test", true);
}
}
TestProject中的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mynamespace.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="21" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.mynamespace" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
现在,当我运行测试项目时,我希望运行测试方法testUpload1并在Eclipse中显示结果。但是我得到的只是控制台视图中的以下错误:
[2018-10-22 17:22:04 - MyProjectTest] Launching instrumentation android.test.InstrumentationTestRunner on emulator-5554
[2018-10-22 17:22:06 - MyProjectTest] Test run failed: No test results
当我查看模拟器的logcat(adb logcat)时,我看到有很多java.lang.ClassNotFoundException抱怨找不到org.apache.jackrabbit.webdav库中的类。
原始项目使用以下附加库:
我是否需要以某种方式将这些库添加到测试项目的构建路径中?我已经尝试通过复制和粘贴将它们添加到项目中,但是似乎不起作用。
我觉得解决方案非常简单,但是我缺少重要的提示。有人可以帮我吗?
预先感谢
此致
迈克尔