【问题标题】:The JUnit test suite failes with [junit] ASSERTION FAILED: 'ci->bp_id == 0'JUnit 测试套件因 [junit] ASSERTION FAILED: 'ci->bp_id == 0' 而失败
【发布时间】:2017-01-23 01:09:41
【问题描述】:

我有一个在 Jenkins 上运行的 JUnit 测试套件。 测试套件使用以下技术。 蚂蚁搭建 JMockint 模拟 EJB Jacoco 用于代码覆盖率

测试套件运行一台 Jenkins Slave 机器 (unix),平均运行时间为 45 分钟(约 1500 次测试)。

套件中的测试数量逐渐增加。最近表格我收到以下错误,导致测试运行间歇性崩溃。

[junit] 
[junit] ASSERTION FAILED: 'ci->bp_id == 0'
[junit] In cmReleaseCodeInfo() (src/jvm/runtime/code/memory/codecollector.c:454)
[junit] Assertion failed after 0 days, 00:32:50 on Mon Jan 23 11:14:50 2017
[junit] Running requires.testMis.MaskedCinTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit] Tests FAILED (crashed)

我不确定如何追踪。如果有人有线索/或线索找到正在发生的事情,我会很高兴。

想知道[junit] ASSERTION FAILED: 'ci->bp_id == 0'从哪里来。

【问题讨论】:

  • 您查看过断言中提到的那个文件吗?也许这可以提供线索它是关于什么的?
  • 我找不到这个文件。事实上我有一个java项目。上面显示的文件是C。这看起来更像是比 Java 更低的级别。
  • 还有上面显示的断言,我的项目中没有这样编码。
  • 这是从 JVM 本身出来的。并且来源应该是开源的!
  • 正确的@GhostCat,我在想这更像是Java中的C代码..?

标签: java unit-testing jenkins junit automated-tests


【解决方案1】:

会更感兴趣看看 [junit] ASSERTION FAILED: 'ci->bp_id == 0' 是从哪里来的。

我找不到这个文件。事实上我有一个java项目。上面显示的文件是 C。这看起来更像是比 Java 更低的级别。 – Asanke 8 小时前

还有上面显示的断言,我没有在我的项目中编写过这样的代码。 – Asanke 8 小时前

断言被编译成您的代码使用的二进制可执行文件。

根据您正在执行的测试类型,有不同的方法来处理这种情况。

如果这是一个回归测试(或验收测试),您可能已经发现了一个错误:您的代码通过了无效的bp_id(不管它是什么,您应该知道...)。

如果这是一个 UnitTest,那么您应该模拟调用二进制可执行文件的代码。

【讨论】:

  • 谢谢@timothy-truckle。这是回归测试。但失败并不一致。测试套件运行间歇性失败。此外,我不确定如何将我的 java 代码转换为 'ci->bp_id == 0' 断言,因为我看到的变量名 s 与我在测试代码中的变量没有任何关系。
猜你喜欢
  • 2012-05-27
  • 2019-05-01
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
  • 1970-01-01
  • 2011-10-22
  • 1970-01-01
相关资源
最近更新 更多