小编tm1*_*701的帖子

Android Espresso - 点击图片和文字的导航抽屉项目

当导航抽屉包含带有图像和文本视图的行列表时,如何单击导航抽屉项?

我使用了以下的Espresso测试源示例:git/testapp_test/src/main/java/com/google/android/apps/common/testing/ui/testapp/DrawerActionsTest.java

我从贡献中检索了DrawerActions和DrawerMatchers,并将它们放在我的测试项目中.

导航抽屉行是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="48dp" 
    android:background="@drawable/list_selector">

    <ImageView
        android:id="@+id/icon"
        etc ... />

    <TextView
        android:id="@+id/title"
        etc.... />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

导航项目是:

public class NavDrawerItem {
    public String title;
    public int icon;
    ....

    // a matcher
    @Override
    public boolean equals( Object mob2) {
        String otherName = ((NavDrawerItem) mob2).title;
        return( title.equals( otherName));
    }
} 
Run Code Online (Sandbox Code Playgroud)

NavigationDrawerAdapter填充导航抽屉视图.

Espresso测试源打开抽屉,关闭它,重新打开它......但我找不到第一个"导入"项目的匹配项.因此,测试会在执行点击时停止.

代码是:

public LearnerAppAutoTest() {
    super(MainActivity.class);
}
@Override
protected void setUp() throws Exception {
    super.setUp();
    getActivity();
}

public void testOpenAndCloseDrawer() {
    openDrawer(R.id.drawer_layout);
    closeDrawer(R.id.drawer_layout);

    openDrawer(R.id.drawer_layout);
    onView(withId(R.id.drawer_layout)).check(matches(isOpen())); …
Run Code Online (Sandbox Code Playgroud)

android android-espresso

4
推荐指数
1
解决办法
8325
查看次数

Android - Espresso - 长选项菜单 - 单击不可见的选项菜单项

Espresso如何点击长选项菜单中尚未显示的(选项)菜单项?

打开选项菜单很简单:

openActionBarOverflowOrOptionsMenu( getInstrumentation().getTargetContext());
Run Code Online (Sandbox Code Playgroud)

我试过例如scrollTo,但它没有成功:

onView( withText("Option menu item text")).perform( scrollTo(), click());

onView( withText( R.id.optionMenuId)).perform( scrollTo(), click());

onView( withId( is( R.id.appOptionMenu))).perform( swipeDown()); // where SwipeDown is a simple utility method on GeneralSwipeAction.

onData( anything()).inAdapterView( withId(R.id.wpeOptionMenu)).atPosition( 12).perform(click()); // I guess because it is not an adapter
Run Code Online (Sandbox Code Playgroud)

你有一个很好的解决方案吗?

android android-espresso

3
推荐指数
1
解决办法
1690
查看次数

Android 与 sourceCompatibility = JavaVersion.VERSION_11 给出错误错误:“包 android.app 不存在”

当使用 JDK 11 目标时,我收到此错误:

错误:包 android.app 不存在

我看到了升级到“Canary”AS 版本的解决方案。我更喜欢使用测试版或稳定版 Android Studio。我定期更新它。不打算仅仅为了升级而进行重大改变。

因此,这效果很好:即使使用 Android Studio“项目设置”和带有“JDK 11”的“JDK”。

当 build.gradle 具有这些编译选项时,一切正常。

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
Run Code Online (Sandbox Code Playgroud)

这给出了提到的错误:

compileOptions {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
}
Run Code Online (Sandbox Code Playgroud)

我的 build.grade 项目文件是:

buildscript {
    repositories {
        mavenCentral()
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.1'
        classpath 'org.ajoberstar:grgit:3.3'
    }
}

allprojects {
    repositories {
        maven { url "https://jitpack.io" }
        google()
    }
}
Run Code Online (Sandbox Code Playgroud)

我的 build.grade 模块文件的部分内容是:

apply plugin: 'com.android.application'
repositories {
    mavenCentral()
    maven { url …
Run Code Online (Sandbox Code Playgroud)

android-studio

3
推荐指数
1
解决办法
1万
查看次数

Osmdroid MylocationNewOverlay - 设置位置更新频率

有没有办法设置位置更新频率?还有最小距离?

原因:我想根据电池节省来设置它。

android osmdroid

2
推荐指数
1
解决办法
1181
查看次数

Android:如何使用支持25.0.0的Espresso 2.2.2?

我怎样才能使这个工作?我读了很多类似的策略,唉.使用高于23.1.1的支持库会一次又一次失败.

dependencies {
  compile 'com.android.support:design:25.0.0'
  compile 'com.android.support:support-v4:25.0.0'
  compile files('libs/slf4j-android-1.5.8.jar')
  androidTestCompile 'com.android.support:support-annotations:25.0.0'
  androidTestCompile( 'com.android.support.test:rules:0.5')
  androidTestCompile( 'com.android.support.test.espresso:espresso-contrib:2.2.2')
  androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
 })
}
Run Code Online (Sandbox Code Playgroud)

我收到了这条消息:

警告:与依赖项'com.android.support:recyclerview-v7'冲突.app(25.0.0)和测试app(23.1.1)的已解决版本有所不同.有关详细信息,请参阅http://g.co/androidstudio/app-test-app-conflict.警告:与依赖项'com.android.support:support-v4'冲突.app(25.0.0)和测试app(23.1.1)的已解决版本有所不同.有关详细信息,请参阅http://g.co/androidstudio/app-test-app-conflict.警告:与依赖项'com.android.support:appcompat-v7'冲突.app(25.0.0)和测试app(23.1.1)的已解决版本有所不同.有关详细信息,请参阅http://g.co/androidstudio/app-test-app-conflict.警告:与依赖项"com.android.support:design"冲突.app(25.0.0)和测试app(23.1.1)的已解决版本有所不同.有关详细信息,请参阅http://g.co/androidstudio/app-test-app-conflict.

第1步:我尝试使用排除组...没有用.

第2步:我也尝试了不同的策略,例如:configurations.all {resolutionStrategy {force'com.android.support:support-annotations:23.1.1'}}

第3步:当然我尝试了第一个gradlew:app:dependenices等,但是那个一直在崩溃.是的,我使用的是JDK1.8.这是一个注册的bug,自夏天以来一直没有解决.

顺便说一句...... Android,支持包和Espresso都来自谷歌?

android dependency-management gradle android-espresso android-design-library

2
推荐指数
1
解决办法
2951
查看次数

Openshift和docker-我可以将哪个注册表用于Minishift?

将Openshift用作容器即服务很容易,请参阅详细步骤。因此,通过Docker客户端,我可以使用Openshift。

我想使用Minishift在笔记本电脑上工作。那是笔记本电脑上Openshift的本地版本。

我应将哪个docker注册表与Minishift结合使用?Minishift没有自己的注册表-我想。

所以,我想做:

$ maven clean install -- building the application
$ oc login to your minishift environment
$ docker build -t myproject/mynewapplication:latest
$ docker tag -- ?? normally to a openshift docker registry entry
$ docker push -- ?? to a local docker registry?
$ on 1st time: $ oc new-app mynewapplication
$ on updates: $ oc rollout latest dc/mynewapplication-n myproject
Run Code Online (Sandbox Code Playgroud)

openshift docker minishift

2
推荐指数
1
解决办法
1689
查看次数

Minishift - 无法启动 - 启动虚拟机时出错:获取主机状态时出错:机器不存在

我在 Windows 10 Home、Oracle Virtualbox、扩展包、Docker 工具箱和 Minishift 环境中本地运行 Docker 应用程序。

几个月后重新启动,我收到各种错误。当我重新运行 minishift 时,我得到了一堆“OK”,最后我收到了这条消息:

启动 Minishift VM .... FAIL E0807 20:29:20.950373 672 start.go:428] 启动 VM 时出错:获取主机状态时出错:机器不存在。重试。

命令是: $ minishift start --vm-driver=virtualbox --memory=3G

首先,我通过 Docker Quickstart 终端启动 docker。因为我可以使用 docker(和 openshift),所以我知道环境是正确的。

我怎样才能再次运行 minishift?

openshift docker minishift

2
推荐指数
2
解决办法
7053
查看次数

Osmbonuspack:在地图上显示Marker的名称

使用nice/new osmbonuspack包:

有没有办法在地图上立即显示标记的名称(或标题)?

所以,不要点击标记.

android osmdroid

1
推荐指数
1
解决办法
1313
查看次数

Robotframework - 访问正则表达式匹配组

如何访问正则表达式中的匹配组?

例如:${line} = Set variable String with-8

我怎么能在单独的变量中获取“String with”部分和数字部分?

我试过:

Test case determining strings and number
    ${line} =   Set variable  String with-8
    ${resultRegexp} =  Evaluate  re.search('(.+)\\-(\\d+)', '''${line}''')
    Log  The string(s) part is: ${resultRegexp[0]   # or group(1) or so
    Log  The number part is: ${resultRegexp[1]   # or group(2) or so
Run Code Online (Sandbox Code Playgroud)

robotframework

0
推荐指数
1
解决办法
154
查看次数

使用 JDK 17 的 Spring Boot 2.5+ - maven Surefire 不执行现有测试

使用 JDK 17 将 Spring Boot 2.2 应用程序更改为 2.5.5 时,Surefire 测试插件不会启动任何现有测试。这是消息:

[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
Run Code Online (Sandbox Code Playgroud)

为什么它不启动任何现有的测试?测试的名称是*Test.java。

当显式添加版本高于 2.19 的 Surefire 插件时,我看到了类似的行为。Spring Boot 测试启动器将有一个更新的 Surefire 插件。

Maven版本是3.6.3。路径上是jdk17.1.0。

<java.version>17</java.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
Run Code Online (Sandbox Code Playgroud)

我查看了类似的问题,发现测试文件夹的路径应该位于“src”下方。是的。

在此输入图像描述

在文件夹中是相同的:

在此输入图像描述

这两个文件夹下面都是一个“java”文件夹。

Surefire 没有明确地出现在 pom.xml 中,因为它位于 spring-boot-test 启动器中。

maven maven-surefire-plugin spring-boot

0
推荐指数
1
解决办法
1万
查看次数