问题标签 [instrumented-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.

0 投票
1 回答
84 浏览

android - Android Kotlin (Instrumented) 测试,断言 ImageButton 有正确的资源不工作

我正在使用 Kotlin 开发一个 Android 应用程序。我正在为我的应用程序编写仪器测试。现在,我在测试 ImageButton 时遇到问题,因为它没有按预期工作。我想测试打开活动时是否使用正确的可绘制对象设置了 ImageButton 视图。

在我的活动 XML 布局文件中,我有一个带有以下代码的 ImageButton

我编写了一个测试来断言图像按钮视图是使用正确的可绘制资源设置的。以下是我的测试的实现。

正如您在测试方法中看到的那样,我断言如果两个可绘制资源相等。当我运行测试时,测试总是失败。但它应该通过。我的代码中缺少什么以及如何修复它?

0 投票
1 回答
2137 浏览

android - FragmentScenario 必须实现 OnFragmentInteractionListener

我目前正在尝试使用 androidTest、mokito 和 espresso 测试 android 中的导航,就像本教程中建议的那样: https ://developer.android.com/guide/navigation/navigation-testing 但我系统地收到以下错误: E/MonitoringInstr :遇到的异常:线程 [main,5,main]。将线程状态转储到输出并锁定峡湾。java.lang.RuntimeException: androidx.fragment.app.testing.FragmentScenario$EmptyFragmentActivity@fa3e8be 必须实现 OnFragmentInteractionListener

这是测试类:

这是我的片段

和 mainAcrivity 文件:

和模块 graddle 文件:

和项目 gradle 文件:

我正在使用 Android Studio 3.5.3。

所以基本上,当我在手机上运行包括导航在内的应用程序时,一切都很好。问题源于仪器测试本身。据我了解,FragmentScenario 没有实现 OnFragmentInteractionListener。我当然不能更改 FragmentScenario 类,我不知道应该如何管理这个东西。我是否使用错误的工具来测试片段交互?

谢谢你们!

0 投票
0 回答
141 浏览

android - Espresso 如何测试通过 getWindow.setDrawable() 设置的背景图像

在我的主要活动中,我观察 Livedata 并使用相应地更改背景getWindow.setBackgroundDrawable(drawable));

我的代码:

在我的浓缩咖啡测试中,我更新了实时数据。但是如果背景drawable改变了,我该如何测试呢?

0 投票
3 回答
1415 浏览

android - 什么会运行 ExampleUnitTest 但找不到 ExampleInstrumentedTest?

Android Studio:3.6.1 Gradle:gradle-5.6.4-all

我已准备好测试我的应用程序,发现 Android Studio 会生成示例单元和仪器测试。所以,我右键单击ExampleUnitTest,选择运行,它运行得很好。但是,当我为ExampleInstrumentedTest执行此操作时,它会失败并显示以下错误消息:

进程完成,退出代码 1 未找到类:“com.example.jbiss.petminder.ExampleInstrumentedTest”

但是,ExampleInstrumentedTest位于默认的androidTest路径 ( ...\app\src\androidTest\java\com\example\jbiss\petminder ),而ExampleUnitTest位于默认的测试路径 ( ...\app\src\test \java\com\example\jbiss\petminder)。

虽然我更改了自动生成的 Android Studio 源代码以开始试验测试编码,但这应该与Class not found: "com.example.jbiss.petminder.ExampleInstrumentedTest"错误无关。这是我修改后的代码(使用自动生成的ExampleInstrumentedTest代码作为基线):

这是我的应用程序的 build.gradle 文件:

虽然我的代码中可能存在其他问题,但什么会导致无法找到该文件中明确说明的现有ExampleInstrumentedTest文件?public class ExampleInstrumentedTest{}

代码的格式似乎如构建检测单元测试中所示

以下没有提供答案:

0 投票
0 回答
185 浏览

android - 您可以在仪器测试期间将 Android 模拟器设置为夜间模式吗?

我正在编写仪器化的 android 测试,为应用程序的 Play 商店列表截取屏幕截图。我希望能够在模拟器上切换夜间模式,这样我就可以使用这两个主题来获取活动的屏幕截图。

有没有办法严格从仪器测试中将模拟器设置为夜间模式?

0 投票
1 回答
603 浏览

android - 无法使用自定义 buildType - 活动构建变体“调试”没有测试工件

我环顾四周,看到一些与我的问题非常相似的问题,但它似乎确实有与我相同的解决方案,但无法解决问题。

当我尝试运行方法测试时,我在 android studio 的页脚中收到一条错误消息,指出“活动构建变体“调试”没有测试工件”

我想使用不同的 buildType 进行仪器测试,以便我可以更改 API 路径。它似乎不会构建和运行,除非我设置testBuildType "debug"

这是我的 gradle 的样子

0 投票
1 回答
124 浏览

android - Is it possible to have a separate module for instrumented tests in android

We have a project, that has some instrumented tests that run part of CI Now we want to add some integration tests (of type instrumentation tests), but they should not run as part of pipeline, but on demand through a separate Jenkins job or command I am trying to create a separate module for integration tests that depend on "app" module, but that's throwing a lot of errors like below

errors showing up in android studio while it tries to resolve the app module

I wanted to understand if its even possible?

0 投票
1 回答
744 浏览

android - 如何在 Android 检测测试中测试运行协程的函数?

在我的 Android Kotlin 项目中,我有一个类,它有一个运行协程的函数,我想使用插桩测试(而不是单元测试)对其进行测试。

这是它的样子:

在我的仪器测试类中,这是我尝试过的:

不幸的是,它不起作用。似乎runBlockingTest {}仅可用于单元测试,而不是仪器测试。这是我运行测试时的错误:

那么如何在仪器化测试中进行测试DemoClass.demo()和价值呢?liveData

谢谢。

编辑

我也试过这个:

测试运行,但我得到了这个:

0 投票
1 回答
56 浏览

android - androidTest - 仪表化 Android 测试(测试依赖于 Handler() 对象)

现在我正忙于测试一些与 BLE 功能相关的类。因此,我编写了一些仪器测试。有一个类依赖于 Handler() 对象。很难测试多个函数,因为我现在在一个测试中使用 Looper.prepare() ,因此我要测试的类被初始化而没有异常。如果我想编写第二个测试,它会因为 Looper 而失败。我得到以下异常:

我还注意到有一个测试顺序。你知道它取决于什么吗?测试:iniRepositoryTest() 在 checkIfProductConfiguredTest() 之前执行。如果我只在 initRepositoryTest() 中使用 Looper.prepare() ,那么两个测试都会毫无例外地运行。

PS:我知道测试名称可能会更好:D

0 投票
2 回答
300 浏览

android - 未找到 Espresso 测试课程

我创建了一个基本的 Espresso 测试类,如下所示:

问题是,当我尝试运行此测试时,我收到以下错误消息:

找不到类:“com.name.app.activities.ConfigurationsTest”

我遵循了这个答案:Android Espresso test: Class not found: ...Empty test suite并查看了我的运行配置。似乎我的测试是作为单元测试运行的,即使它是一个仪器测试。

当我删除单元测试配置时出现另一个问题,这些配置是在我尝试运行我的检测测试时创建的,并尝试为我的测试类创建检测测试运行配置:向导不允许我选择我的检测测试类包含上面的测试是测试类。问题在这里可视化。

我也看过这个答案:TestCase class not found by Android Studio并确认我在 main/java 和 androidTest/java 中的目录结构是相同的。

此外,当我按照这个问题所做的事情:Android Espresso: "No test were found" , "Process crashed"并为包含我的测试类的整个包创建运行配置并运行它时,我得到:

java.lang.RuntimeException:无法加载 AndroidJUnit4 的委托运行程序“androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner”。

我怀疑这与我的导入或依赖项有关。以下是两者:

任何帮助表示赞赏。谢谢!