【问题标题】:Set device orientation in Android Instrumentation Test on AWS device farm在 AWS 设备场上的 Android Instrumentation 测试中设置设备方向
【发布时间】:2018-04-25 10:31:56
【问题描述】:

我正在将我的 Android apk 和 instrumentationTest apk 上传到 aws 设备场,但它继续在 portait 中运行我的应用程序。

在我的应用程序中,我已在清单中将方向设置为横向

android:screenOrientation="sensorLandscape"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"

然后在我的测试中我运行(在@Before)

UiDevice mDevice = UiDevice.getInstance(getInstrumentation());
try {
    mDevice.setOrientationLeft();
} catch (RemoteException e) {
    e.printStackTrace();
}

但它仍然是纵向运行的。

这是我需要在我的应用程序中设置的内容,还是 AWS 设备场中的设置,因为我在网站或谷歌中找不到任何内容

【问题讨论】:

    标签: android amazon-web-services android-orientation android-instrumentation aws-device-farm


    【解决方案1】:

    可能是我们需要在测试本身而不是@Before 中设置它。设备场中的每次测试执行都是相互独立的。当您有机会时,您可以尝试其他 SO 帖子中的代码吗?

    https://stackoverflow.com/a/6206510/4358385

    HTH

    【讨论】:

    • 我读到了,但问题是我认为我无权访问活动。我正在使用 UiAutomator,它使用 UiDevice 并且只是点击坐标。我找不到视图或任何 Android 类,至少我认为我不能。我复制了许多差异测试示例以使其正常工作,但现在不记得我是怎么做的了!另外,我正在使用一个名为 LibGDX 的游戏库,它没有 Android 类,只有一个 Activity。
    • 嗯,你能在本地物理设备上使用它吗?
    【解决方案2】:

    更新: 查看示例 Android 应用程序,他们似乎没有将 @before 放在测试类中。他们在基类中执行此操作,然后对其进行扩展。

    https://github.com/awslabs/aws-device-farm-sample-app-for-android/blob/master/app/src/androidTest/java/com/amazonaws/devicefarm/android/referenceapp/Categories/AlertPageTest.java

    如果您有机会,能否告诉我您是否在测试类中使用 @before 以及是否可以将其移至示例中的基类?我的假设是,由于 Device Farms 执行环境,这可能会起作用。它可能没有像我们预期的那样运行@before

    【讨论】:

    • 我可能会尝试,但可能要等到周末。如果 @ Before 在基类中,您为什么认为它会起作用?当然,如果它运行 @Before 方法,无论是在基类还是主类中,它都会这样做?
    • 根据我以前的经验,设备农场解析器很奇怪。它将解压缩测试,然后检查它的实际测试方法。它在运行之前为每个测试创建一个新的测试环境实例。但是基类中的 @before 应该在实际测试执行之前运行,因此它可能会影响所有测试。
    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 2021-07-15
    • 2018-06-12
    • 2016-10-03
    相关资源
    最近更新 更多