代码之家  ›  专栏  ›  技术社区  ›  Mat

Spring Boot junit5测试在本地(Windows)工作,但不在Jenkins(Linux)中工作

  •  0
  • Mat  · 技术社区  · 4 年前

    我将在这里回答我自己的问题,以防它对其他人有用。。。

    在升级到Spring Boot 2.4.0(从2.3.4)和JUnit5(从JUnit4)之后,我的单元测试在Jenkins上开始失败。奇怪的是他们在当地工作。

    这是詹金斯的错误日志:

    Neither @ContextConfiguration nor @ContextHierarchy found for test class [my.PackageName.controller.ControllerTest], using SpringBootContextLoader
    

    为什么这些测试在詹金斯身上停止了工作,但在当地却没有问题?

    我发现了类似的问题/答案,但不是我的具体问题。。。(如果答案已经给出,则表示歉意)

    1 回复  |  直到 4 年前
        1
  •  0
  •   Mat    4 年前

    我花了太长时间才发现,但关键是:

    Neither @ContextConfiguration nor @ContextHierarchy found for test class [my.**PackageName**.controller.ControllerTest], using SpringBootContextLoader
    

    PackageName 是骆驼案。出于某种原因,很久以前,当我创建测试类时,我把它们放在了包中:

    package my.PackageName.controller;
    

    解决方法是将其更改为:

    package my.packagename.controller;
    

    因为Linux文件系统区分大小写,而Windows则不区分大小写。对依赖项的更新似乎改变了某些地方解析包的方式。