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

QAF 3.0.0升级至3.0.1b后TestNG无法识别加载BDD测试用例问题

问题根因
  • QAF 3.0.1b版本调整了BDD(Gherkin)用例的默认扫描规则:3.0.0版本默认会扫描项目根目录下的/scenarios目录,3.0.1b版本为了适配标准Maven项目结构,默认仅扫描src/test/resources/scenarios、/test目录下的用例文件,你当前将用例存放在项目根目录/scenarios下,不在新版本默认扫描范围内,因此没有测试用例被加载。
  • 新版本对GherkinScenarioFactory的加载逻辑做了更新,不再默认递归扫描项目全目录匹配.feature文件,必须显式指定用例目录路径才会触发扫描。
解决方案

你可以任选以下任意一种方案修复:

方案1:新增配置指定用例扫描路径(无需调整项目结构)

在你的TestNG配置文件对应<test>标签内,新增scenario.file.locations参数,指定你存放用例的scenarios目录即可,修改后的配置参考如下:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="test suite 1" verbose="0" parallel="none">
    <listeners>
        <listener class-name="com.proj.listener.proj_listener" />
    </listeners>
    
    <test name="Config-1" enabled="true">
        <parameter name="env.resources" value="resources;executions/exec_1"/>
        <!-- 新增下面这行配置,指定scenario文件所在目录 -->
        <parameter name="scenario.file.locations" value="scenarios"/>
        <groups>
        <run>
            <include name="@sit1" />
        </run>
        </groups>
        <classes>
            <class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory"/>
        </classes>
    </test>
    
</suite>

注意:如果你的用例目录下还有多层子目录,默认会递归扫描,不需要额外配置

方案2:调整项目结构适配新版本默认规则

将项目根目录下的/scenarios目录整体移动到src/test/resources路径下,和QAF 3.0.1b的默认扫描路径对齐,无需修改任何配置即可正常加载用例。

补充检查项

如果以上两种方案都不生效,检查POM.xml中QAF 3.0.1b依赖的TestNG版本是否和你项目中引入的TestNG版本一致,避免版本冲突导致的加载异常。

验证方式

修改后重新执行测试,若控制台输出扫描到的.feature文件数量,且用例正常执行即为修复成功。如果依然有问题,可以将TestNG配置的verbose属性值改为10,查看详细运行日志确认用例扫描过程是否存在其他异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:24:03