Запускать тесты эспрессо без запуска приложения - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь запустить тест, записанный в эспрессо, без повторного запуска приложения. По сути, я хочу иметь возможность записывать тесты по порядку, я включил запись фрагментов тестов, чтобы я мог задавать определенные c тесты пользовательского интерфейса. это, как говорится, независимо от того, что я делаю, оно всегда перезапускает приложение и не проходит тест, потому что его запуск и открытие на домашней странице, где мой тест пользовательского интерфейса может быть на 3-й странице в.

package com.x.driver


import android.view.View
import android.view.ViewGroup
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.action.ViewActions.*
import androidx.test.espresso.matcher.ViewMatchers.*
import androidx.test.filters.LargeTest
import androidx.test.rule.ActivityTestRule
import androidx.test.runner.AndroidJUnit4
import org.hamcrest.Description
import org.hamcrest.Matcher
import org.hamcrest.Matchers.allOf
import org.hamcrest.TypeSafeMatcher
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith

@LargeTest
@RunWith(AndroidJUnit4::class)
// WARNING: Espresso Test Recorder was paused during recording.
// The generated test may be missing actions which might lead to unexpected behavior.
class InvalidEmailAddress {

    @Rule
    @JvmField
    var mActivityTestRule = ActivityTestRule(MainActivity::class.java)

    @Test
    fun invalidEmailAddress() {
        val appCompatEditText = onView(
                allOf(withId(R.id.loginuseremail),
                        childAtPosition(
                                allOf(withId(R.id.fragment_login),
                                        childAtPosition(
                                                withId(R.id.nav_host_fragment),
                                                0)),
                                7),
                        isDisplayed()))
        appCompatEditText.perform(replaceText("zaphod beeblebrox"), closeSoftKeyboard())

        val appCompatEditText2 = onView(
                allOf(withId(R.id.loginuseremail), withText("zaphod beeblebrox"),
                        childAtPosition(
                                allOf(withId(R.id.fragment_login),
                                        childAtPosition(
                                                withId(R.id.nav_host_fragment),
                                                0)),
                                7),
                        isDisplayed()))
        appCompatEditText2.perform(pressImeActionButton())

        val materialButton = onView(
                allOf(withId(R.id.login_continuebtn), withText("Continue"),
                        childAtPosition(
                                allOf(withId(R.id.fragment_login),
                                        childAtPosition(
                                                withId(R.id.nav_host_fragment),
                                                0)),
                                9),
                        isDisplayed()))
        materialButton.perform(click())
    }

    private fun childAtPosition(
            parentMatcher: Matcher<View>, position: Int): Matcher<View> {

        return object : TypeSafeMatcher<View>() {
            override fun describeTo(description: Description) {
                description.appendText("Child at position $position in parent ")
                parentMatcher.describeTo(description)
            }

            public override fun matchesSafely(view: View): Boolean {
                val parent = view.parent
                return parent is ViewGroup && parentMatcher.matches(parent)
                        && view == parent.getChildAt(position)
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...