当前位置: 首页 > 知识库问答 >
问题:

浓缩咖啡测试禁用动画

孙帅
2023-03-14

@Test
    public void test3_PaySuccessful(){
        init();

    ViewInteraction amountEditText = onView(
            allOf(withId(R.id.et_amount), isDisplayed()));
    amountEditText.perform(replaceText("SGD 0.010"), closeSoftKeyboard());

    //, withText("Proceed")
    ViewInteraction appCompatButton = onView(
            allOf(withId(R.id.btn_confirm), isDisplayed()));
    appCompatButton.perform(click());

    //, withText("Pay")
    ViewInteraction appCompatButton2 = onView(
            allOf(withId(R.id.btn_confirm), isDisplayed()));
    appCompatButton2.perform(click());

    //dialog
    ViewInteraction appCompatButton3 = onView(
            allOf(withId(R.id.confirm_button), withText("Confirm"), isDisplayed()));
    appCompatButton3.perform(click());

    //have to disable animation in order to pass this.
    intended(CoreMatchers.allOf(hasComponent(PaymentSelectionActivity2.class.getName())));

}

我在做Espresso测试时遇到了一个问题,我知道Espresso不能处理动画,所以我在下面做了。-禁用我的测试设备窗口动画,过渡动画和动画师持续时间比例都设置为关闭(这不起作用)-然后我试图在我的代码中添加一个标志(如。espresso_testing=true。如果为true,我的代码将跳过调用所有startAnimation()函数调用。--->这很管用。然而,在编写espresso测试用例时,我不能更改应用程序上的代码。包括上面的一个测试用例。

还有其他办法可以做到这一点吗?提前谢了。

共有1个答案

葛泳
2023-03-14

确保不断更新插件:

buildscript {
  repositories {
    google()
    gradlePluginPortal()
  }

  dependencies {
    classpath 'com.android.tools.build:gradle:3.3.0'
  }
}

使用testoptions中名为animationsdisabled的新标志:

android {

  ...

  testOptions {
    animationsDisabled = true
  }
}

来源:https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.testoptions.html#com.android.build.gradle.internal.dsl.testoptions:animationsdabiled

窗口动画刻度过渡动画刻度动画师持续时间刻度

来源:https://developer.android.com/training/testing/espresso/setup#set-up-environment

您可以尝试通过命令行使用adb:

# Turn off animations
adb shell settings put global window_animation_scale 0 &
adb shell settings put global transition_animation_scale 0 &
adb shell settings put global animator_duration_scale 0 &
TestButler.verifyAnimationsDisabled(InstrumentationRegistry.getTargetContext());

您可以尝试为espresso测试创建testrulegradle任务:

来源:https://product.reverb.com/disabling-animations-in-espresso-for-android-testing-de17f7cf236f

 类似资料:
  • 我很难说服新的Android构建系统运行测试。在运行测试时,它给出了错误,这在其他问题中已经讨论过,但其中没有任何问题能够解决我的问题。 我已经将它剥离下来,这样我的测试包就完全不依赖于主包(),但仍然存在启动活动的问题。 我的测试活动: 和我的测试类: 建筑的相关部分。等级: 我获得的完整堆栈跟踪是: 我没有包括我的,因为我读到的所有内容都表明,我不需要为添加意图,但是我无论如何都试图这样做,结

  • 浓缩咖啡测试很烦人,因为像这样的代码 给出如下错误

  • 在我的主要活动中,我有initUi函数,它将触发对webviewActivity的意图,在webviewActivity中,有一个FragWebView,其中加载了url。 以下是来自FragWebView的示例代码: 我从我的主要活动中传递打开webview的意图是: 请让我知道如何解决这个问题。 问候

  • 我正在努力学习如何测试我的Android项目,包括我的导航。我已经实现了一个navHost片段作为NavController,并使用它设置动作栏后退按钮,以便在片段中移动。我不知道如何访问这个后退按钮,以便我可以通过浓缩咖啡测试它。 以下是主活动中onCreate函数的相关代码: 这是一个相关的堆栈溢出页面,但他们正在询问主页按钮,我正在尝试使用后退按钮:如何使用Espresso测试操作栏上的主页