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

Linux服务器上Jenkins无法运行全部测试的问题求助

问题排查与解决方案

本地IntelliJ执行mvn clean test可正常跑完111个Cucumber测试,但Linux服务器Jenkins上执行同一命令仅运行5个测试就显示Build was aborted,结合提供的测试启动类代码,可从以下方向排查:

可能原因及解决步骤

  • Jenkins构建超时限制
    检查Jenkins任务的超时配置:进入任务配置页,找到「构建环境」或「高级」选项中的超时设置,测试运行总时长可能超过了Jenkins设定的阈值,导致被自动中止。根据本地测试的总耗时,延长超时时间即可。

  • Linux服务器Chrome环境缺失/不兼容
    即便设置了headless模式,Linux服务器仍可能缺少Chrome运行依赖:

    • 确认服务器已安装Chrome浏览器和对应版本的ChromeDriver,两者版本必须匹配;
    • 安装Chrome依赖库,比如Ubuntu系统执行apt-get install libnss3 libgconf-2-4 libxss1 libappindicator1 libindicator7,CentOS系统执行yum install nss libXScrnSaver;
    • 确保ChromeDriver路径配置正确,可在测试代码中显式指定路径,或把ChromeDriver加入系统PATH。
  • 测试资源与权限问题

    • 检查Jenkins运行用户是否有权限访问测试所需的所有资源(如配置文件、测试数据、浏览器驱动);
    • 确认Jenkins工作目录下的src/test/resources/features/目录中所有feature文件已完整拉取,避免Git拉取代码时遗漏文件。
  • 测试执行异常导致中止

    • 查看Jenkins构建日志的完整详情,或检查已生成的部分测试报告,定位第5个测试执行时的具体异常;
    • 在Jenkins的构建命令中添加debug参数:mvn clean test -X,输出更详细的日志信息,帮助定位问题点。
  • Maven/JDK环境差异

    • 确认Jenkins服务器上的Maven版本、JDK版本与本地IntelliJ完全一致,版本差异可能导致测试执行行为不同;
    • 执行mvn clean install -U强制更新依赖缓存,避免依赖版本不一致的问题。

测试启动类代码

@RunWith(Cucumber.class)
@CucumberOptions(
        features = {"src/test/resources/features/"},
        monochrome = true
)

public class CukesFeatureRunnerTest {

    @BeforeClass
    public static void executeBeforeTests() {
       
       Configuration.browser = "chrome";
       Configuration.headless = true;
       Configuration.browserSize = "1600x900";


    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:35:22