【问题标题】:Debugging breakpoints on JUnit test in Eclipse are not working在 Eclipse 中调试 JUnit 测试的断点不起作用
【发布时间】:2010-12-03 04:43:13
【问题描述】:

我正在尝试在 Eclipse 中调试 junit 测试,但我的断点没有触发(除非它们位于第一行或第二行)。

我已尝试删除并重新创建工作区中的所有断点、清理项目、创建新的调试配置,以及单独运行测试方法以及作为测试类的一部分与其他方法一起运行。但一切都无济于事:-(

 public void testLoadPatientsAndConvertToBeans() throws IOException, CDataGridException {
  File file = fileutil.getFileFromPrefsOrPrompt(basefileDef);

  CDataBuilder builder = new CDataDelimitedFileBuilder(file, 
    CDataDelimitedFileBuilder.DelimiterSettings.WINDOWS_CSV,
    basefileDef);

  // breakpoints placed on lines from here on do not fire

  CDataCacheContainer container = 
   cacheIO.construct(
     new CDataNarrower(
       cacheIO.construct(builder)
     ).setConvertMissing(true));

  assertEquals(13548, container.size());

  cacheIO.export(container, patients);

  Collection<Patient> pBeans = patients.getBeans();

  assertEquals(container.size(), pBeans.size());

  Patient patient = pBeans.iterator().next();
  Map props = patient.getPropertyMap();

  System.out.println(props);
 }

【问题讨论】:

    标签: java eclipse debugging junit


    【解决方案1】:

    我的第一个直觉是 eclipse 中的缓存类与您的代码不同步。但是,鉴于您已经尝试清理/重建您的项目,它应该已经修复它。由于您可以在第 1 行/第 2 行设置断点,那么当您单步执行代码时会发生什么?代码是否与每个步骤一致?如果不是,则表明 Eclipse 具有与您的源代码不同的类版本。如果它们相同,我会尝试关闭一个较新的 eclipse 副本(我假设您已经尝试过重新启动 eclipse),因为您可能发现了一个奇怪的错误(新版本可能已修复它或清除了一些陈旧的数据)。抱歉,我无法提供更多帮助。

    【讨论】:

      【解决方案2】:

      如果您使用的是 Sun JDK 6 Update 14,则可能出现这种情况。请参阅另一个 similar SO question here。在这种情况下,可能的解决方案是使用 Sun JDK 6 Update 16。

      【讨论】:

      • 升级到 Sun JRE 6 Update 16 成功了。谢谢 Vineet。
      • 不幸的是,我收到“投票太旧而无法更改,除非答案已被编辑”并且无法对此进行投票。你能编辑然后我会吗?
      • +1,@tukushan 如果你还没有投票,你现在应该可以投票了
      猜你喜欢
      • 2016-12-21
      • 2020-10-06
      • 2015-10-28
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      相关资源
      最近更新 更多