Android - Espresso testing - How to take a screenshot which would be shown on Testdroid result?

2.6k Views Asked by At

I'm using the Espresso-framework for my Android testing and additionally I'm using the Testdroid-Cloud for automatic testing on real devices.

Does anybody know, how to tell Espresso to make a screenshot, which is shown on the Testdroid Dashboard?

If I disable Espresso, the Testdroid crawler automatically make screenshots. By uing the Espresso-framework it doesn't! See screenshot:

enter image description here

1

There are 1 best solutions below

1
piotrek1543 On BEST ANSWER

as I know Testdroid Crawler is an instrumentation testing tool similar to Google's monkey UI/Application Exerciser based on Appium testing framework.

The auto Testdroid crawler makes screenshots without this permission!

You're wrong. All necessary system permissions are provided by adb(Android Debug Bridge) or appium script at app runtime. Notice, that you don't see Crawler implementation, just the results.

Does anybody know, how to tell Espresso to make a screenshot, which is shown on the Testdroid Dashboard?

Here'a a quick tutorial how to do it using your own custom Espresso method: http://testdroid.com/tech/tips-and-tricks-taking-screenshots-with-espresso-or-espresso-v2-0

Remember of adding this line to AndroidMainfest.xml:

Another possibility is to use Spoon along with Espresso. The test would looks like then:

   @Test
    public void checkIfSettingsMenuItemsAreVisible() throws InterruptedException {
        //open OptionsMenu to see available items
        openActionBarOverflowOrOptionsMenu(mRule.getActivity());
        //create a screenshot with 'options_menu' TAG
        Spoon.screenshot(mRule.getActivity(), "options_menu");
        //check if Settings item is Visible
        onView(withText(R.string.action_settings)).check(matches(isDisplayed()));
        //check if `Sort` item is Visible
        onView(withText(R.string.action_sort)).check(matches(isDisplayed()));
        //perform click on `Sort` OptionsMenu item
        onView(withText(R.string.action_sort)).perform(click());
        //create a screenshot with 'options_menu_sort' TAG
        Spoon.screenshot(mRule.getActivity(), "options_menu_sort");
        //check if `Sort -> By Value id` item is Visible
        onView(withText(R.string.menu_sort_length)).check(matches(isDisplayed()));
        //check if `Sort -> By Joke length` item is Visible
        onView(withText(R.string.menu_sort_a_z)).check(matches(isDisplayed()));
    }

Please check official Spoon site: http://square.github.io/spoon/

and this article: http://elekslabs.com/2014/05/creating-test-reports-for-android-with-spoon-and-emma.html

Hope it will help