0
그래서, 나는 전체 응용 프로그램을 통과하는 테스트가 있습니다. 이제 모든 것을 그림으로 찍고 싶습니다. 2 개의 액티비티와 다수의 프래그먼트가 있기 때문에 모든 액티비티의 첫 부분 만 가져 오기 때문에 작동하지 않습니다.숟가락 및 에스프레소 테스트
어떻게 모든 조각을 찍을 수 있습니까? 이 방법은 스크린 샷을 만들기위한 컨텍스트를 필요로 할 때
지금@RunWith(AndroidJUnit4.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class HearthBeatUITest {
private final int MILISECONDS_TIMEOUT = 300;
@Rule
public IntentsTestRule<IntroActivity> mActivityRule = new IntentsTestRule<>(IntroActivity.class);
private Activity currentActivity;
}
이, 당신이 호출됩니다 :
private Activity getActivityInstance() {
getInstrumentation().runOnMainSync(new Runnable() {
public void run() {
Collection resumedActivities = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(RESUMED);
if (resumedActivities.iterator().hasNext()) {
currentActivity = (Activity) resumedActivities.iterator().next();
}
}
});
return currentActivity;
}
그것은 당신이 얻을 것이다를
첫째@RunWith(AndroidJUnit4.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class HearthBeatUITest {
private final int MILISECONDS_TIMEOUT = 700;
@Rule
public ActivityTestRule<IntroActivity> mActivityRule = new ActivityTestRule<>(IntroActivity.class);
@Rule
public ActivityTestRule<LoginActivity> mLoginActivityRule = new ActivityTestRule<>(LoginActivity.class);
@Test
/**
* Testing all the screens on the application if they are actually there
*/
public void startTest() {
Session.clear();
Spoon.screenshot(mActivityRule.getActivity(), "initial_state");
threadSleep(MILISECONDS_TIMEOUT);
onView(withId(R.id.button_register)).check(matches(isDisplayed())).perform(click());
threadSleep(MILISECONDS_TIMEOUT);
Spoon.screenshot(mLoginActivityRule.getActivity(), "register_intro");
onView(withId(R.id.register_with_email)).check(matches(isDisplayed())).perform(click());
threadSleep(MILISECONDS_TIMEOUT);
Spoon.screenshot(mLoginActivityRule.getActivity(), "register_detailed");
onView(withId(R.id.image_left_button)).check(matches(isDisplayed())).perform(click());
threadSleep(MILISECONDS_TIMEOUT);
Spoon.screenshot(mLoginActivityRule.getActivity(), "register_intro");
onView(withId(R.id.image_left_button)).check(matches(isDisplayed())).perform(click());
threadSleep(MILISECONDS_TIMEOUT);
Spoon.screenshot(mActivityRule.getActivity(), "initial_state");
onView(withId(R.id.button_signin)).check(matches(isDisplayed())).perform(click());
threadSleep(MILISECONDS_TIMEOUT);
Spoon.screenshot(mLoginActivityRule.getActivity(), "login_intro");
onView(withId(R.id.sign_in_emal)).check(matches(isDisplayed())).perform(click());
threadSleep(MILISECONDS_TIMEOUT);
Spoon.screenshot(mLoginActivityRule.getActivity(), "login_detailed");
}
}
조각에 애니메이션이 있습니까? 애니메이션을 제거하고 dev 설정에서 애니메이션을 끄십시오. – WenChao