问题标签 [androidjunitrunner]
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 - AndroidJUnit4ClassRunner 抛出 RuntimeException Android
我正在开发一个 Android 应用程序。我正在为 android 编写 Junit 测试,我是 Junit 测试用例的新手。
在应用程序内我有一个相对布局,点击我打开日期选择器对话框,一旦用户选择我在 TextView 中显示的日期。
我想用 Junit 测试这些操作。当我尝试运行测试用例时,它会抛出以下错误:
这是我的测试课:
我也试过这些代码在里面运行,runOnUiTHeard()
但问题仍然存在。
我也试过这些代码在里面运行,Handler()
但测试将继续运行,不显示任何输出
我错过了什么吗?
android - jUnit4 - 为什么测试可挂起函数失败并出现“RuntimeException:... AndroidJUnit4 无法加载”?
当我测试一个用 编写的简单 db 时Room
,当 dao 函数用suspend
. 错误是:
我的实体是:
如您所见,我想防止数据库存储User
相同的user_name
内容。
我的道课是:
我的测试是:
那时,所有测试都按预期成功。
当我将 dao 类更改为使用suspend
函数时会出现问题:
我将测试更改如下:
现在测试可暂停功能失败!
ARuntimeException
提出:
我发现错误来自 test insertSameUser
,如果我insertSameUser
按照以下方式更改,则不再有错误:
如果我按照此处@RunWith(AndroidJUnit4::class)
的建议删除, 则测试失败并显示. 如果我再次添加上面的虚拟测试,那么测试就可以工作了。java.lang.Exception: Method insertSameUser() should be void
有人有想法吗?
依赖项是:
android - 引起:java.lang.NoSuchMethodError: No static method listOf(Ljava/lang/Object;)Ljava/util/List; 在 Lk/v/i 级;或其超类
我kotlin collections library (listOf, first, toList, etc,..
在我们的包中使用 ) 方法AndroidTest
来运行 UI 测试AndroidJunit4 runner
,无论我在哪里引用 kotlin 集合库,我都会遇到这些类型的错误。
奇怪的是我在编译时没有看到任何问题,也没有在课堂级别独立运行测试时看到任何问题。仅当我使用 Gradle 运行整个测试套件时才会出现此问题
这是我使用 Gradle 运行 UI 测试套件的命令
我怀疑在运行时加载的类似乎与编译时不同
这是build.gradle
依赖项
android - 如何在命令行中使用 Android Test Orchestrator?
从 CI 运行测试时看到崩溃。阅读这篇关于使用 Android Test Orchestrator 的文章 ( https://developer.android.com/training/testing/junit-runner#ato-gradle )。我正在使用 adb 从 CI 运行我的测试。想知道如何安装 Orchestrator。命令行中的apk?
android - 从 Android 测试中获取资源: InstrumentationRegistry.getInstrumentation().getTargetContext() VS myActivityTestRule.getActivity()
我需要从 Android 测试(AndroidJUnit4ClassRunner)中获取资源。推荐的方法是什么,为什么?
或者
完整代码
android - 测试在 TestLab 中失败,但在从 gradle 传递来自 runner 的参数并在我的 androidTest 中使用它们时传入本地
我通过 gradle 从 runner 传递参数并在我的 androidTest 中使用它们。
''' 例如:
该测试在本地运行,但是在 Firebase TestLab 中运行时,我得到一个空指针异常并且当我尝试使用 key=FOO 访问参数时测试失败。你能帮我解决这个问题吗?
我不想使用 CLI。如果有办法我可以使用 android studio 和 firebase testlab web UI 做到这一点,请告诉我。
kotlin - 如何将规则应用于 AndroidJUnitRunner 中的所有测试用例?
我正在尝试在由特定跑步者运行的所有测试用例中应用 TestWatcher 作为规则。
元数据收集器:
测试运行者:
我所有的测试类目前都需要MetadataCollector()
初始化为规则:
测试类:
有没有办法可以从运行器自动为每个测试用例创建此规则的实例?理想情况下,这是为了避免@Rule
在每个单独的测试类中重复这个创建。
不幸的是,我现在被JUnit 4困住了。:(
java - 生成的Android espresso 测试运行失败,AndroidJUnitRunner 解析失败:Landroidx/test/platform/io/FileTestStorage;
在我的应用程序上录制了一个简单的浓缩咖啡测试后,测试无法运行,我希望有人能指导我了解为什么会发生这种情况。产生的错误是:
我正在使用的 Build.gradle 看起来像:
Espresso java 文件(有一些我试过的注释掉的东西):
android - 安卓。是否可以编写参数化的仪器测试
我正在尝试编写一个参数化的仪器测试。这是我的代码:
但是当我运行我的测试时,我收到以下错误:
org.junit.runners.model.InvalidTestClassError: 无效的测试类 'com. . . . ****.TempTest':
- 在 org.junit.runners.ParentRunner.(ParentRunner.java:92) 在 org.junit.runners.BlockJUnit4ClassRunner.(BlockJUnit4ClassRunner.java: 74) 在 androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner.(AndroidJUnit4ClassRunner.java:43) 在 androidx.test.internal.runner.junit4.AndroidJUnit4Builder.runnerForClass(AndroidJUnit4Builder.java:65) 在 org.junit.runners。 model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37) at androidx.test.internal.runner.AndroidRunnerBuilder.runnerForClass(AndroidRunnerBuilder.java:153)在 org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70) 在 androidx.test.internal.runner.TestLoader。doCreateRunner(TestLoader.java:73) 在 androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:105) 在 androidx.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:804) 在 androidx.test .runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:613) 在 android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2074) 在 androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:411)Instrumentation$InstrumentationThread.run(Instrumentation.java:2074)Instrumentation$InstrumentationThread.run(Instrumentation.java:2074)
我试图找到解决这个问题的方法。作为搜索的结果,我尝试@RunWith(Parameterized::class)
为我的TempTest
班级添加注释。@Parameterized.Parameters
我还为带有参数的方法添加了注释 testFormatTrimPercentValueArguments()
:
但是,当我运行测试时出现以下错误:
org.junit.runners.model.InvalidTestClassError: 无效的测试类 'com. . . . ****.TempTest':
- org.junit.runners.ParentRunner.(ParentRunner.java:102) 的 org.junit.runners.ParentRunner.validate(ParentRunner.java:525) 没有可运行的方法。 84) 在 org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParametersFactory.createRunnerForTestWithParameters(BlockJUnit4ClassRunnerWithParametersFactory.java:16) 在 org.junit.runners.Parameterized$RunnersFactory 的 org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters.(BlockJUnit4ClassRunnerWithParameters.java:35)。 createRunnersForParameters(Parameterized.java:463) at org.junit.runners.Parameterized$RunnersFactory.createRunners(Parameterized.java:392) at org.junit.runners.Parameterized$RunnersFactory.access$100(Parameterized.java:360) at org. junit.runners.Parameterized.(Parameterized.java:307) 在 org.junit。runners.Parameterized.(Parameterized.java:303) at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:334) at org.junit.internal.builders .AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 在 org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 在 androidx.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:63 ) 在 org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70) 在 org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37) 在 androidx.test.internal.runner.AndroidRunnerBuilder。 runnerForClass(AndroidRunnerBuilder.java:153) 在 org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70) 在 androidx.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:73) 在 androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:105) 在 androidx.test.internal.runner.TestRequestBuilder .build(TestRequestBuilder.java:804) 在 androidx.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:613) 在 androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:411) 在 android.app.Instrumentation$ InstrumentationThread.run(Instrumentation.java:2074)AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:411) 在 android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2074)AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:411) 在 android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2074)
请告诉我我做错了什么。可能无法编写参数化的仪器测试,因为当我编写本地参数化测试时没有这样的问题。当我在androidTest
文件夹中编写参数化测试时出现问题。请帮我。