JUnit的不一樣的,我只是不知道如何...從Eclipse插件提供圖書館工作區
我猜是因爲在屬性> Java構建路徑此項目的多數民衆贊成>庫>添加庫嚮導:
我怎麼可以這樣做,包括我在這個嚮導庫從我的插件,即其提供給在工作區中的用戶?
JUnit的不一樣的,我只是不知道如何...從Eclipse插件提供圖書館工作區
我猜是因爲在屬性> Java構建路徑此項目的多數民衆贊成>庫>添加庫嚮導:
我怎麼可以這樣做,包括我在這個嚮導庫從我的插件,即其提供給在工作區中的用戶?
好的,您需要查看三個不同的擴展點。最簡單的方法是看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
。這擴展了IClasspathContainerPage
和IClasspathContainerPageExtension
。
對於quickfix和classpathfix請參閱擴展點org.eclipse.jdt.ui.quickFixProcessors和org.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>
你,先生,應該得到一枚獎章。它還沒有工作,但我現在很期待...... =) 順便說一句,我也是瑞士人,這是爲了伯爾尼大學的一個學士項目。 :d – 2012-04-18 16:57:04
除了那些在線程中已經提到的擴展點:
初始化容器的邏輯是在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>
您是否設法讓它正常工作?我試圖一樣,但只是通過擴展在答案擴展點提到,它不起作用:( – aphex 2013-03-13 15:00:29
是的,它現在工作。我諮詢了很多JUnit的源代碼,複製和調整部分。你可以看看在我的代碼中(無論是在「源代碼」下還是安裝插件,它都包含源代碼):http://scg.unibe.ch/wiki/projects/DoodleDebug 最重要的類位於文件夾' DoodleServer'在包'ch.unibe.scg.doodle.server.buildpath'和'ch.unibe.scg.doodle.server.quickfix'。希望有幫助。 – 2013-03-13 15:36:32
非常感謝:) – aphex 2013-03-13 15:46:31