You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android项目运行Simple Cucumber测试显示0用例通过问题咨询

问题排查与解决

出现0测试用例执行的核心原因是Cucumber的用例发现链路没有打通,对照demo配置时最容易漏的几个问题点按优先级排查即可:

  • 检查cucumber配置文件的路径与内容
    确认androidTest/assets/路径下存在cucumber.properties文件,文件内的包名配置必须和你项目测试类的实际包名完全一致,不要直接照搬demo的包名:
    # 替换为你自己的测试类所在包名
    cucumber.package=com.devsank.androiduitesting.test
    # 对应feature文件存放的assets子目录名
    cucumber.android.features=features
    
    包名配置错误时,Cucumber扫描不到任何带步骤注解的类,会直接返回0用例。
  • 检查.feature文件的存放位置
    所有.feature格式的用例文件必须放在androidTest/assets/features/目录下(和上面配置的features参数对应),如果误放在java源码目录、res目录下,运行时Cucumber无法读取到文件,自然不会执行任何用例。
  • 检查Gradle中测试运行器配置
    打开app模块的build.gradle文件,确认defaultConfig块中已经将测试运行器替换为Cucumber提供的专用运行器:
    defaultConfig {
        // 其他配置...
        testInstrumentationRunner "cucumber.android.runner.CucumberAndroidJUnitRunner"
        // 如果使用AndroidX依赖,要引入对应AndroidX版本的cucumber-android依赖,runner类路径保持一致
    }
    
    如果保留默认的AndroidJUnitRunner,运行时不会触发Cucumber的用例扫描逻辑,只会识别普通JUnit用例,没有普通JUnit用例时就会显示0测试通过。
  • 检查依赖版本兼容性
    直接照搬demo的依赖版本很容易和你当前项目的AGP、compileSdk、AndroidX库版本产生冲突,冲突时Cucumber会静默加载失败,不会抛出明显报错。建议先将cucumber-android依赖升级到和你当前AGP版本匹配的最新稳定版,再重新同步项目运行。
  • 检查步骤定义的匹配性
    确认步骤定义类中@Given/@When/@Then注解内的正则文本,和.feature文件里的步骤文本完全匹配,多余空格、标点差异都会导致Cucumber匹配不到步骤实现,跳过对应用例。

快速定位技巧:运行测试时在Logcat中过滤Cucumber关键词的日志,可以直接看到具体是配置文件缺失、feature文件找不到还是步骤匹配失败,不用逐行盲查配置。

内容的提问来源于stack exchange,提问作者Sanket

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 15:33:18