【问题标题】:Junit fails because the Server$StartJob still runningJunit 失败,因为 Server$StartJob 仍在运行
【发布时间】:2014-05-20 16:36:12
【问题描述】:

我在 Eclipse 上运行 junit 测试,它所做的只是尝试以调试模式启动服务器。但是,我收到以下错误:

“在平台关闭后发现作业仍在运行。应通过在关闭期间安排它们的插件取消作业:org.eclipse.wst.server.core.internal.Server$StartJob”

有一段代码是从线程触发的,除非 junit 测试全部完成,否则它不会命中。但是一旦测试完成,它就会关闭工作台,因此服务器启动工作永远不会完成。

有没有办法等待作业完成然后运行 ​​junit test ?

【问题讨论】:

    标签: eclipse junit


    【解决方案1】:

    加入他们的家庭,让执行线程阻塞,直到家庭中的所有作业都完成。

    请参阅org.eclipse.core.runtime.jobs.IJobManager#join(Object, IProgressMonitor)org.eclipse.wst.server.core.ServerUtil#SERVER_JOB_FAMILY

    【讨论】:

    • 嘿,你能详细说明一下这个解决方案吗?
    • 如果您希望作业完成,假设如果有足够的时间会完成,您希望暂停单元测试直到作业完成。 Jobs API 通过作业管理器允许不同的作业说它们是“家庭”的一部分,并允许其他任何人使用家庭 ID 阻止对 join() 的调用,以确保这些作业没有运行.因此,调用 Job.getJobManager().join(ServerUtil.SERVER_JOB_FAMILY); 应该会停止调用者的执行,直到该作业完成。
    • 这是一个完美的解决方案。它解决了我的问题..非常感谢:)
    • 请务必接受您的问题的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 2019-05-01
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多