2013-05-30 79 views
0

我正試圖讓我的片段項目執行主機項目中的代碼的單元測試。我正在使用eclipse,maven和osgi。單元測試插件:找不到符號錯誤?

比方說,我有兩個項目:PluginProject和PluginProject.tests。我在PluginProject.tests中遇到了奇怪的行爲。

如果我把我的單元測試放在test/<package-name>,一切都很好,但測試不會執行。

但是,如果我將單元測試放在src/test/java/<package-name>中,那麼找不到我引用的PlugingProject的任何類(即我試圖測試的任何類)。我總是得到一個'找不到符號'的錯誤。

注:我在PluginProject.test的Manifest.MF具有以下行(其中包括):Fragment-Host: PluginProjectr;bundle-version="0.0.1"

有別人的經驗呢?如有必要,我可以發佈更詳細的信息。謝謝!

+1

只是想知道爲什麼你使用2個項目。你是否只能使用一個項目,使用src/main/java和src/test/java? – vikingsteve

+0

簡而言之,使用片段項目功能將允許測試主機綁定,並且我們將能夠在不包含測試的情況下分發主機綁定。 –

+0

您是否在測試清單中添加了Junit軟件包作爲Require-Bundle?你在使用Junit-Plugin啓動器嗎? – Cristiano

回答

2

我推薦的方法,就像@vikingsteve提到的,應該有一個包含代碼和單元測試的項目。

不要擔心,如果按照標準的方式(的src/main/java和SRC /測試/ JAVA),做一個正常MVN包MVN部署測試類將不會在包裝導致神器

+0

如果您使用OSGi,請不要認爲這是一個有效的建議 – Cristiano

+0

這就是我對我的軟件包所做的。我將它們測試爲Java應用程序,而不是在OSGi容器中測試。我看到它可能不適合每個用例,但是IMO,如果它們真的是**單元**測試,它們應該能夠在沒有所有OSGi佈線的情況下獨立運行。我將重新回答答案,因爲我不知道官方方式,所以聽起來不那麼正式。謝謝 – Hilikus

+1

如果你在一個OSGi容器內進行測試,那麼這聽起來更像是一個集成測試......這是肯定的,它將保證另一個模塊。但是對於單元測試,我同意Hilikus--最好在沒有OSGi的情況下單獨測試代碼。 – vikingsteve