android - 在单个 Android 项目中同时进行 JUnit 和 Cucumber 测试

标签 android unit-testing junit cucumber

我希望将 Cucumber 测试引入我的 Android 应用程序。为此,我需要一个使用 CucumberInstrumentationCore 的自定义测试仪器运行器,如 here 所述.

但是我已经有了由 JUnit 驱动的 Espresso 测试,因此我已经有了一个使用 AndroidJUnitTestRunner 的自定义测试仪器运行器。

在我看来,自定义实现不能同时使用两者,因为每个调用 finish()onStart() 方法都在测试 Activity 中。

看来我的选择是:

  • 复制 CucumberInstrumentationCoreAndroidJUnitTestRunner 的源代码并生成一个新的组合测试运行器来执行两者的必要部分

或者...

  • 将 JUnit 测试放在 androidTest 文件夹中,并在 androidTest 旁边创建一个新的仪器测试文件夹,其中仅包含 Cucumber 测试。这可能吗?

我该如何继续,是否错过了更优雅的方式?

最佳答案

我最终生成了一个组合的 instrumentationTestRunner,它似乎工作正常:

https://gist.github.com/dhoskins/98afa6976c87cb20328d42065c7292ee

关于android - 在单个 Android 项目中同时进行 JUnit 和 Cucumber 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39622628/

相关文章:

android - 什么取代了 WearableListView.Adapter?

java - 如何测试使用 JAR 的 Java 代码?

android - 在运行我的 Cucumber 场景时,类没有公共(public)构造函数 TestCase(String name) 或 TestCase()

java - 使用 2 个字符串集(组合它们)

java - 在华为智能手机上为 "android javax.net.ssl.SSLException: 502 AUTH TLS OK",但在三星智能手机上运行良好。为什么?

android - 通过 PendingIntent 添加新任务到 JobScheduler

c# - 100% 代码覆盖率,提示 MoveNext()

swift - 如何测试异步方法的结果?

python - 我可以指定在 .coveragerc 中运行哪些测试文件吗?

java - 测试Apache Camel Junit的所有进程和路由