Автоматизированные локализованные скриншоты - PullRequest
0 голосов
/ 11 сентября 2018

Есть ли способ автоматизировать получение локализованных скриншотов на Android из Windows?

Я нашел инструмент для Mac

https://docs.fastlane.tools/getting-started/android/screenshots/

Но есть ли способсделать это на Windows?Мне нужно сделать 5 снимков экрана для 11 разных языков, было бы неплохо как-то автоматизировать.

РЕДАКТИРОВАТЬ

После этого поста из@grrrrrr answer Я сделал автоматизацию для захвата моей FirstActivity со всеми локализациями.Однако я не могу узнать, как пройти через мое приложение и получить скриншоты из нескольких действий, изменить локализацию и повторить их снова.Процесс должен выглядеть следующим образом:

'en'
FirstActivity (scr)> MainActivity (scr)> SettingsActivity (scr) ...

'de'
FirstActivity (scr)> MainActivity (scr)> SettingsActivity (scr) ...

и т. Д.

EDIT 2

Atm Я делаю это с помощьювручную изменяя действия в

private final CustomActivityTestRule mActivityTestRule = new CustomActivityTestRule<>(StartActivity.class);

и делая скриншоты один за другим.

1 Ответ

0 голосов
/ 11 сентября 2018

Здесь - отличное руководство о том, как делать скриншоты ваших автоматических тестов, когда они проваливаются или успешно (почти ваш точный вариант использования локализации тоже!).Вы можете следовать руководству по созданию ScreenshotWatcher или просто вызывать метод captureScreenshot по мере необходимости, чтобы получить необходимые снимки экрана.Я скопировал соответствующий класс ниже:

public class ScreenshotWatcher extends TestWatcher {

    @Override
    protected void succeeded(Description description) {
        Locale locale = InstrumentationRegistry.getTargetContext()
                .getResources()
                .getConfiguration()
                .getLocales()
                .get(0);
        captureScreenshot(description.getMethodName() + "_" + locale.toLanguageTag());
    }


    private void captureScreenshot(String name) {
        ScreenCapture capture = Screenshot.capture();
        capture.setFormat(Bitmap.CompressFormat.PNG);
        capture.setName(name);
        try {
            capture.process();
        } catch (IOException ex) {
            throw new IllegalStateException(ex);
        }
    }


    @Override
    protected void failed(Throwable e, Description description) {
        captureScreenshot(description.getMethodName() + "_fail");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...