我在用浓缩咖啡做黑盒测试。我遵循了另一个线程的指导(Android Espresso如何使用apk编写测试?)。但是我的测试在DexPathList上找不到类。错误消息为:
导致:java.lang.ClassNotFoundException:没有找到类"com.twitter.android.DispatchActive"上的路径:DexPathList[[zip文件"/system/Framework/android.test.runner.jar", zip文件"/data/app/...test-2.apk", zip文件"/data/app/...-2.apk"], nativeLibrary目录=[/data/app-lib/...... test-2,/data/app-lib/...-2, /vendor/lib, /system/lib]]
我正在测试的应用程序是Twitter,我没有源代码。所以我在android Studio中创建了一个android项目。
清单文件如下所示:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="my.test">
<application
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:theme="@style/AppTheme">
</application>
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.twitter.android">
</instrumentation>
</manifest>
测试类:
@RunWith(AndroidJUnit4.class)
public class Replayer {
private static final String CLASSNAME = "com.twitter.android.DispatchActivity";
private static Class<? extends Activity> activityClass;
static {
try {
activityClass = (Class<? extends Activity>) Class.forName(CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@Rule
public final ActivityTestRule<?> activityRule
= new ActivityTestRule<>(activityClass);
@Test
public void launchMain() {
Espresso.onView(ViewMatchers.withText("Log in")).perform(ViewActions.click());
}
}
我在DexPathList上没有看到目标应用程序。我是否误解了我的项目?
嗯,我经过近一个月的探索才发现。。。需要在生成中指定目标应用程序。gradle文件,如下所示:
android {
....
defaultConfig {
...
applicationId "com.twitter.android"
}
...
}
gradle将在android清单文件中自动生成instrumentation节点。请注意,在清单中手动添加android:targetPackage将不起作用。
在我的主要活动中,我有initUi函数,它将触发对webviewActivity的意图,在webviewActivity中,有一个FragWebView,其中加载了url。 以下是来自FragWebView的示例代码: 我从我的主要活动中传递打开webview的意图是: 请让我知道如何解决这个问题。 问候
我在做Espresso测试时遇到了一个问题,我知道Espresso不能处理动画,所以我在下面做了。-禁用我的测试设备窗口动画,过渡动画和动画师持续时间比例都设置为关闭(这不起作用)-然后我试图在我的代码中添加一个标志(如。espresso_testing=true。如果为true,我的代码将跳过调用所有startAnimation()函数调用。--->这很管用。然而,在编写espresso测试用例
浓缩咖啡测试很烦人,因为像这样的代码 给出如下错误
我很难说服新的Android构建系统运行测试。在运行测试时,它给出了错误,这在其他问题中已经讨论过,但其中没有任何问题能够解决我的问题。 我已经将它剥离下来,这样我的测试包就完全不依赖于主包(),但仍然存在启动活动的问题。 我的测试活动: 和我的测试类: 建筑的相关部分。等级: 我获得的完整堆栈跟踪是: 我没有包括我的,因为我读到的所有内容都表明,我不需要为添加意图,但是我无论如何都试图这样做,结
我有一个MainMenu活动,它从文件中获取数据并显示出来。我希望数据在每次浓缩咖啡测试开始时被删除,并且在测试之间不会持续。 我尝试了以下方法: 但是,它不会删除文件。我认为上下文可能不正确。有没有办法在浓缩咖啡测试开始时清除内部存储? 这些文件是。ser '文件。