3

JUnit 做同样的事情,我只是不知道如何......

Eclipse junit 快速修复

我猜那是因为 Properties > Java Build Path > Libraries > Add Library 向导中的这个条目:

Eclipse junit 添加库

我该如何做同样的事情并从我的插件中将我的库包含在此向导中,即使其对工作区中的用户可用?

4

2 回答 2

3

好的,您需要查看三个不同的扩展点。最简单的方法是看JUnit插件本身(有四个)

org.eclipse.jdt.junit: git://dev.eclipse.org/org.eclipse.jdt/org.eclipse.jdt.junit.git
org.eclipse.jdt.junit.core: git://dev.eclipse.org/org.eclipse.jdt/org.eclipse.jdt.junit.core.git
org.eclipse.jdt.junit.runtime: git://dev.eclipse.org/org.eclipse.jdt/org.eclipse.jdt.junit.runtime.git
org.eclipse.jdt.junit4.runtime: git://dev.eclipse.org/org.eclipse.jdt/org.eclipse.jdt.junit4.runtime.git

因此,您可以研究 JUnit 插件,但这些是您需要的扩展点:

对于添加库,请查看扩展点org.eclipse.jdt.ui.classpathContainerPage。从 JUnit plugin.xml:

<extension point="org.eclipse.jdt.ui.classpathContainerPage">
  <classpathContainerPage
        name="%JUnitContainerName"
        class="org.eclipse.jdt.internal.junit.buildpath.JUnitContainerWizardPage"
        id="org.eclipse.jdt.junit.JUNIT_CONTAINER">
  </classpathContainerPage>
</extension>

所以这被实现为JUnitContainerWizardPage. 这延伸IClasspathContainerPageIClasspathContainerPageExtension

对于 quickfix 和 classpathfix,请参见扩展点org.eclipse.jdt.ui.quickFixProcessorsorg.eclipse.jdt.ui.classpathFixProcessors。再次从 JUnit plugin.xml 中:

<extension point="org.eclipse.jdt.ui.quickFixProcessors">
  <quickFixProcessor
        name="%junitQuickFixProcessor"
        class="org.eclipse.jdt.internal.junit.ui.JUnitQuickFixProcessor"
        id="org.eclipse.jdt.junit.JUnitQuickFixProcessor">
  </quickFixProcessor>
</extension>

<extension point="org.eclipse.jdt.ui.classpathFixProcessors">
  <classpathFixProcessor
        name="%junitClasspathFixProcessor"
        class="org.eclipse.jdt.internal.junit.ui.JUnitClasspathFixProcessor"
        id="org.eclipse.jdt.junit.JUnitClasspathFixProcessor">
        <overrides id="org.eclipse.jdt.ui.text.correction.DefaultClasspathFixProcessor">
        </overrides>
  </classpathFixProcessor>
</extension>
于 2012-04-14T19:40:14.423 回答
0

除了线程中已经提到的扩展点:

初始化容器的逻辑在 org.eclipse.jdt.junit.core 插件中。

   <extension
      point="org.eclipse.jdt.core.classpathContainerInitializer">
      <classpathContainerInitializer
            class="org.eclipse.jdt.internal.junit.buildpath.JUnitContainerInitializer"
            id="org.eclipse.jdt.junit.JUNIT_CONTAINER">
      </classpathContainerInitializer>
   </extension>
于 2012-12-23T00:06:38.940 回答