AndroidX Espresso测试:未找到测试,测试套件为空

时间:2019-01-12 16:22:12

标签: android android-espresso android-testing androidx

我正在尝试运行 src / androidTest (这是我的Android项目中使用 AndroidX 库的乐器测试),但出现No tests were found错误和{ {1}}日志。

我已经检查了所有使用AndroidX库的示例和文档是否都在执行相同操作。

我已经尝试根据以下链接https://stackoverflow.com/a/53715513/1826656来设置Empty test suite,但还是没有运气。

我做错什么了吗?或缺少任何步骤?

请检查这张图片中是否有Test Run log

Edit Configurations代码:

MainActivityTest.java

Gradle文件依赖性:

import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.typeText;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;

@RunWith(AndroidJUnit4.class)
@LargeTest
public class MainActivityTest {

   @Rule
   ActivityTestRule mActivityRule = new ActivityTestRule<>(MainActivity.class, false, false);

   @Test
   public void checkViewsVisibility() {
     // verify the visibility of recycler view on screen
     onView(withId(R.id.record_list_rv)).check(matches(isDisplayed()));

     // verify the visibility of progressbar on screen
     onView(withId(R.id.progressBar)).check(matches(isDisplayed()));

     // verify the visibility of no data TextView on screen By default it should be GONE
     onView(withId(R.id.no_data_tv)).check(matches(isDisplayed()));

     onView(withId(R.id.no_data_tv)).check(matches(withText("No Data")));

     onView(withId(R.id.no_data_tv)).perform(typeText("No Data"));
   }
}

3 个答案:

答案 0 :(得分:0)

您的defaultConfig中有一个错字。可能应该是:

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

答案 1 :(得分:0)

就我而言,我还努力进行UI测试。检查(并尝试)类似主题中的大多数内容对我没有任何结果。最后,我通过gradle命令运行了仪器测试:

gradlew connectedProdDebugAndroidTest

或(如果要运行单个测试,或在单个类中运行测试)

gradlew connectedProdDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class={package.class}#{methodName}

通过命令运行测试之后,可以通过专用按钮运行测试。

答案 2 :(得分:-1)

对我来说,在确保所有依赖项都可用之后,将targetSdk从30更改为较低版本可以解决我的问题。