问题标签 [androidx-test]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android 测试编排器不适用于 Android X
我最近迁移了我的项目以使用 AndroidX,并使用以下文档为我在 gradle 上的 espresso 测试配置了测试协调器:
https://developer.android.com/training/testing/junit-runner#using-android-test-orchestrator
我有依赖:
但是,我的任何测试都没有执行,并且在运行 gradle 运行以下 adb shell 命令时看起来它们失败了,即:
从上面看:似乎它正在尝试使用 android 支持版本而不是 androidx 版本执行此命令。
它似乎没有在任何地方记录用于 androidx 的内容。
android - 未解决的参考 - 发生了什么?
我试图在 UI 测试“androidTest”中引用一个 Activity,它是我的主项目文件夹的一部分,但是,我不断收到错误“未解析的引用”。当我检查发生了什么时,看起来我的导入正在尝试引用“测试”文件夹而不是“主”文件夹......
例如。在我的 src/ 我有:-
/androidTest
/主要的
/测试
就好像 /androidTest 正在我的 /test 文件夹而不是 /main 文件夹中寻找对活动的引用。
知道为什么会这样吗?
android - 使用自定义运行器时未找到测试
我androidx.test
在我的项目中使用库(我最近迁移到)并使用 custom AndroidJUnitRunner
。在迁移之前一切正常,但现在我收到了这个错误 -
Started running tests
Test running failed: Instrumentation run failed due to 'Process crashed.'
Empty test suite.
我使用的自定义运行器类扩展自androidx.test.runner.AndroidJUnitRunner
在我的应用程序build.gradle
文件中,我有以下设置 -
testInstrumentationRunner "com.example.CustomTestRunner"
有依赖关系 -
androidTestImplementation "androidx.test.ext:junit:1.1.0"
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test:core:1.1.0'
androidTestImplementation "androidx.test:rules:1.1.1"
我所有的测试课程都有@RunWith(androidx.test.ext.junit.runners.AndroidJUnit4.class)
我被困在这一点上。任何帮助,将不胜感激。谢谢。
android - Robolectric AndroidX 片段 NoClassDefFoundError
将代码和测试迁移到AndroidX 后,一切似乎都运行良好,但是由于NoClassDefFoundError: androidx/fragment/testing/R$style异常,两个片段的 Robolectric junit 测试失败。堆栈跟踪:
java.lang.NoClassDefFoundError: androidx/fragment/testing/R$style at androidx.fragment.app.testing.FragmentScenario$EmptyFragmentActivity.onCreate(FragmentScenario.java:79) at android.app.Activity.performCreate(Activity.java:5933 ) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 在 androidx.test.runner.MonitoringInstrumentation.callActivityOnCreate(MonitoringInstrumentation.java:674) 在 org.robolectric.android.controller.ActivityController.lambda$create$0(ActivityController .java:69) 在 org.robolectric.shadows.ShadowLooper.runPaused(ShadowLooper.java:365) 在 org.robolectric.android.controller.ActivityController.create(ActivityController.java:69) 在 org.robolectric.android.controller。 org.robolectric.android 上的 ActivityController.create(ActivityController.java:74)。internal.LocalActivityInvoker.startActivity(LocalActivityInvoker.java:39) 在 androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:207) 在 androidx.fragment.app.testing.FragmentScenario.internalLaunch(FragmentScenario.java:283)在 androidx.fragment.app.testing.FragmentScenario.launchInContainer(FragmentScenario.java:265)
为了测试片段,我正在使用 FragmentScenario,似乎 FragmentScenario.EmptyFragmentActivity 指的是包 androidx.fragment.testing.R 中缺少的 R 类:
setTheme(getIntent().getIntExtra(THEME_EXTRAS_BUNDLE_KEY, R.style.FragmentScenarioEmptyFragmentActivityTheme));
知道可能出了什么问题吗?也许我错过了一个对我来说并不那么明显的依赖。
可在以下项目中重现: https ://github.com/marcinbak/androidx-test-error
也在 Google 的问题跟踪器中报告:https ://issuetracker.google.com/issues/122321150
android - 如何对startActivity进行单元测试?
我是android测试的新手。请帮我为这门课写一个单元测试。
测试文件夹中的单元测试类
错误 :
android - AndroidX 测试对话框
自 AndroidX 发布以来,我们在单元测试中使用 Robolectric 和 Espresso。但是我们无法找到测试对话的方法。Espresso 社区建议我们这样做:
但是这里的测试异常失败
调试代码时,我们发现找到了对话框,但不知何故decorView.hasWindowFocus()
返回 false。
是因为 Robolectric 中的一些错误导致视图无法获得窗口焦点吗?有没有办法解决它?目前,我们正在求助于 Robolectric 阴影。
我们正在使用Robolectric 4.2
和AndroidX test 1.1.0
版本
更新: 显然在显示对话框后,活动保持窗口焦点,所以它很可能是 Robolectric 错误(或我的误解)。
robolectric - 如何使用 AndroidX 片段测试来测试选项菜单?
设置
- 机器人电动车:4.2.1
- AndroidX 片段测试:1.1.0-alpha05
背景
AndroidX 带来了测试片段的新方法:
来源: https ://developer.android.com/training/basics/fragments/testing
Robolectric 与 AndroidX 兼容,并打算弃用反映 AndroidX 功能的功能。
来源: http ://robolectric.org/androidx_test/
但是在 Robolectric 中,您可以测试选项菜单的行为,例如使用类似这样的东西(我知道它看起来很混乱,但 FragmentController 在某些情况下不能很好地工作):
在 AndroidX 中执行类似操作(不使用 espresso)的 API 是什么?该RoboMenu
构造似乎不适用于 AndroidX,这不起作用:
java - 如何为 AndroidX 测试配置 Android 项目
我在配置我的 Android 应用程序以使用 AndroidX 进行测试时遇到困难。
当我尝试运行初始测试时,出现此错误:-
我的 gradle 类似于:-
我尝试执行的测试类似于:-
我究竟做错了什么?
如何解决 gradle 依赖问题?
我已经按照这个链接显示了配置 AndroidX 进行测试
当我更改我的应用程序 gradle 以明确包含番石榴时
依赖性问题更改为以下内容:-
android - 添加 androidx.fragment:fragment-testing 依赖项后,AndroidTests 停止构建
在我将fragment-testing
依赖项添加到我的项目后:
当我尝试构建androidTests
它失败时:
FAILURE:构建失败并出现异常。
出了什么问题:无法确定任务“:MyApp:mergeEsmartliveDebugAndroidTestResources”的依赖关系。
无法解析配置“:MyApp:esmartliveDebugAndroidTestRuntimeClasspath”的所有任务依赖项。无法解析 androidx.test:core:1.1.0。要求:项目:MyApp 项目:MyApp > androidx.test.ext:junit:1.1.0 项目:MyApp > androidx.fragment:fragment-testing:1.1.0-alpha09 找不到'androidx.test:core'的版本满足版本约束: 依赖路径 'MyApp:unspecified' --> 'androidx.test:core:1.1.0' 约束路径 'MyApp:unspecified' --> 'androidx.test:core:{strictly 1.1.0} ' 因为以下原因:esmartliveDebugRuntimeClasspath 使用版本 1.1.0 依赖路径 'MyApp:unspecified' --> 'androidx.test.ext:junit:1.1.0' --> '
无法解析 androidx.test:core:{strictly 1.1.0}。要求:项目:MyApp 找不到满足版本约束的“androidx.test:core”版本:依赖路径“MyApp:unspecified”->“androidx.test:core:1.1.0”约束路径“MyApp: unspecified' --> 'androidx.test:core:{strictly 1.1.0}' 因为以下原因:esmartliveDebugRuntimeClasspath 使用版本 1.1.0 依赖路径 'MyApp:unspecified' --> 'androidx.test.ext:junit: 1.1.0' --> 'androidx.test:core:1.1.0' 依赖路径 'MyApp:unspecified' --> 'androidx.test.espresso:espresso-intents:3.2.0-beta01' --> 'androidx .test:core:1.2.0-beta01' 依赖路径'MyApp:
无法解析 androidx.test:monitor:1.1.1。要求:项目:MyApp > androidx.test.ext:junit:1.1.0 找不到满足版本约束的“androidx.test:monitor”版本:依赖路径“MyApp:unspecified”->“androidx.test” .ext:junit:1.1.0' --> 'androidx.test:monitor:1.1.1' 依赖路径 'MyApp:unspecified' --> 'androidx.test:runner:1.2.0-beta01' --> ' androidx.test:monitor:1.2.0-beta01' 依赖路径 'MyApp:unspecified' --> 'androidx.test:core:1.2.0-beta01' --> 'androidx.test:monitor:1.2.0-beta01 '
无法解析 androidx.test:core:1.2.0-beta01。要求:项目:MyApp > androidx.test.espresso:espresso-intents:3.2.0-beta01 找不到满足版本约束的“androidx.test:core”版本:依赖路径“MyApp:unspecified”--> 'androidx.test:core:1.1.0' 约束路径 'MyApp:unspecified' --> 'androidx.test:core:{strictly 1.1.0}' 因为以下原因:esmartliveDebugRuntimeClasspath 使用版本 1.1.0 依赖路径' MyApp:unspecified' --> 'androidx.test.ext:junit:1.1.0' --> 'androidx.test:core:1.1.0' 依赖路径 'MyApp:unspecified' --> 'androidx.test.espresso :espresso-intents:3.2.0-beta01' --> 'androidx.test:core:1.2.
无法解析 androidx.test:monitor:1.2.0-beta01。要求:项目:MyApp > androidx.test:runner:1.2.0-beta01 项目:MyApp > androidx.test:core:1.2.0-beta01 找不到满足版本约束的“androidx.test:monitor”版本: 依赖路径 'MyApp:unspecified' --> 'androidx.test.ext:junit:1.1.0' --> 'androidx.test:monitor:1.1.1' 依赖路径 'MyApp:unspecified' --> 'androidx .test:runner:1.2.0-beta01' --> 'androidx.test:monitor:1.2.0-beta01' 依赖路径'MyApp:unspecified' --> 'androidx.test:core:1.2.0-beta01' --> 'androidx.test:monitor:1.2.0-beta01'
不知道如何处理这种冲突......有人有同样的问题吗?
android - androidx.test.annotation 包位于哪个 AndroidX 库中?
简单的问题:
如何使用 androidx.test.annotation 包?它位于哪个 AndroidX 库中?我特别想使用androidx.test.annotation.UiThreadTest。这个注解是 android.support.test.annotation.UiThreadTest 从 pre-AndroidX 时代的延续。
此软件包未在AndroidX 迁移页面上列出。它是否包含在另一个库中?如果有,是哪一个?我一辈子都找不到它。IDE 中的包搜索一无所获。