4

我收到了错误,takeScreenShot()并且在执行命令时它也给了我语言配置的错误fastlane Screengrab

这是我的测试执行代码

/**
 * Instrumentation test, which will execute on an Android device.
 *
 */
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {

    @ClassRule
    public static final LocaleTestRule localeTestRule = new LocaleTestRule();

    @Rule
    public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule<>(MainActivity.class);


    @Test
    public void testTakeScreenshot() {
        Screengrab.screenshot("Dashboard");
    }

    @Test
    public void useAppContext() {
    }
}

终端错误:-

support.test.espresso.ViewInteraction$1.call(ViewInteraction.java:150) [11:09:17]: ▸ at java.util.concurrent.FutureTask.run(FutureTask.java:237) [11:09:17] : ▸ 在 android.os.Handler.handleCallback(Handler.java:751) [11:09:17]: ▸ 在 android.os.Handler.dispatchMessage(Handler.java:95) [11:09:17]: ▸在 android.os.Looper.loop(Looper.java:154) [11:09:17]: ▸ 在 android.app.ActivityThread.main(ActivityThread.java:6776) [11:09:17]: ▸ 在 java .lang.reflect.Method.invoke(Native Method) [11:09:17]: ▸ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518) [11:09:17]: ▸ 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) [11:09:19]: ▸ 。[11:09:19]:▸ 时间:5.788 [11:09:19]:▸ 有 1 次失败:[11:09:19]:▸ 1) testTakeScreenshot(com.tcc.gstknowledge.ExampleInstrumentedTest) [11: 09:19]:▸ 在 android.os.Handler.handleCallback(Handler.java:751) [11:09:19]: ▸ 在 android.os.Handler.dispatchMessage(Handler.java:95) [11:09:19]: ▸ 在android.os.Looper.loop(Looper.java:154) [11:09:19]: ▸ 在 android.app.ActivityThread.main(ActivityThread.java:6776) [11:09:19]: ▸ 在 java. lang.reflect.Method.invoke(Native Method) [11:09:19]: ▸ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518) [11:09:19]: ▸在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) [11:09:19]: ▸ 失败!!![11:09:19]:▸ 测试运行:2,失败:1 ▸ 在 java.lang.reflect.Method.invoke(Native Method) [11:09:19]: ▸ 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518) [11:09: 19]:▸ 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) [11:09:19]:▸ 失败!!![11:09:19]:▸ 测试运行:2,失败:1 ▸ 在 java.lang.reflect.Method.invoke(Native Method) [11:09:19]: ▸ 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518) [11:09: 19]:▸ 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) [11:09:19]:▸ 失败!!![11:09:19]:▸ 测试运行:2,失败:1

[!] 设备 3300dea196566381 上的语言环境 en-US 测试失败

4

1 回答 1

2

这可能会有所帮助:

从 screengrab 0.5.0 开始,您可以指定不同的策略来控制 screengrab 捕获屏幕截图的方式。较新的策略委托给 UI Automator,与原始策略相比,它修复了许多问题:

  • 为材质 UI 正确捕获阴影/高程
  • 正确捕获多窗口情况(对话框等)
  • 适用于 Android N

但是,UI Automator 需要 API 级别 >= 18 的设备,因此它还不是默认策略。要默认为所有屏幕截图启用它,请在测试运行之前进行以下调用:

 Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy());

https://docs.fastlane.tools/getting-started/android/screenshots/#improved-screenshot-capture-with-ui-automator

于 2018-08-09T10:11:41.900 回答