【问题标题】:jenkins vs eclipse-junit: no tests found injenkins vs eclipse-junit:没有找到测试
【发布时间】:2016-07-21 03:33:36
【问题描述】:

我在 Jenkins 中运行了数千个 JUnit 测试。某些测试失败,并在 ....Test 中找到没有测试。我注意到这些测试存在问题,因为它们结合了 JUnit3 和 JUnit4 方法。更具体地说,这些测试:

  • extend MyTestCase 扩展 TestCase (JUnit3)
  • 测试方法的名称不以 ...test 结尾。他们有 @Test 注释。 (JUnit4)

问题是当我在 Eclipse 中运行这些测试时,我没有得到同样的错误。测试正常运行,它们要么通过,要么失败。所以我的问题是: Jenkins 怎么可能找不到测试而 Eclipse 可以?我可以以某种方式配置 Jenkins 以运行这些测试吗?

【问题讨论】:

  • 您的构建脚本是如何编写的?马文?摇篮?蚂蚁?还有什么?
  • 我通过 Jenkins 运行的脚本是一个 Ant 脚本。在 Eclipse 中,我分别运行了“有问题的”...Test.java 文件(右键单击 --> 运行方式 --> JUnit 测试)。
  • 显示 Ant 脚本可能会有所帮助。
  • Jenkins 自己没有找到任何东西,它是构建工具(Ant、Maven 等)执行此操作。当您使用 Ant 时,问题就在那里。
  • @cheffe 你是对的,完全错误的表达,这不是詹金斯的事情!

标签: eclipse jenkins ant junit


【解决方案1】:

由于@RunWith() 注释,测试在带有 JUnit4 运行器的 Eclipse 中运行。但是,ant 似乎忽略了注释并将测试作为 JUnit3 测试执行,因为它们扩展了 TestCase。 我设法根据@AlexanderMiles 的this 帖子解决了这个问题。非常感谢!

【讨论】:

  • 我在用 Ant 执行一些测试时仍然遇到问题......这些测试扩展了 TestCase(JUnit3) 并使用了 JUnit4 注释。不同之处在于它们是使用 SpringJUnit4ClassRunner 执行的。 Eclipse 通过@RunWith(SpringJUnit4ClassRunner.class) 执行它们。 Ant 不识别注释,就像在其他情况下一样。我不知道是否有办法强制 Ant 使用 SpringJunit4ClassRunner 而不是 JUnit3 runner 运行这些测试...
猜你喜欢
  • 2014-04-23
  • 2018-08-22
  • 1970-01-01
  • 2013-12-02
  • 2018-10-11
  • 2020-04-11
  • 2017-08-14
  • 1970-01-01
  • 2021-10-25
相关资源
最近更新 更多