2011-11-22 31 views
4

我有一個使用聲納進行分析的JAVA項目。我擁有的一些java包都在源文件夾下。我也有一些測試文件,我在不同的文件夾下。現在,在Sonar中,我組織了不同結構下的項目,即對於「搜索」項目,我只想包含「搜索」包。使用sonar.exclusion屬性很容易實現這些排除。但是,我的問題是測試如何?我怎麼能排除一些包?因爲從我的測試中,即使我的源文件和測試文件夾使用相同的結構,當我指定「sonar.exclusions」時,測試包也不會自動排除。SONAR - 如何排除在「sonar.test」下定義的軟件包

我的文件夾結構:

/src/com/domain/ 
    -- search/ 
    -- utils/ 
    -- pooling/ 
    -- category/ 

/test/src/com/domain/ 
    -- utils/ 
    -- pooling/ 

聲納性能:

<property name="sonar.sources" value="${path}/src" /> 
<property name="sonar.tests" value="${path}/test/src" /> 
<property name="sonar.exclusions" value="com/domain/utils/**/*,com/domain/pooling/**/*,com/domain/category/**/*" /> 

所以,我想只包括 「搜索」 包。上面的代碼的工作方式使得SONAR只分析我的「搜索」包。該軟件包可以在SONAR「組件」選項卡中看到。不幸的是,除了「搜索」組件外,我還可以看到「util」和「pooling」組件。我做了一些測試,並確定這兩個組件(utils和pooling)是「sonar.tests」屬性的結果。儘管如此,即使組件中出現「util」和「pooling」,SONAR也會在其下面顯示零個文件。因此,回到我的問題,無論如何,我可以做的,以排除「組件」下顯示的「util」和「pooling」?也許使用屬性(即聲納測試排除)?

順便說一句,我使用SONAR 2.11,並在Red Hat Linux下運行。我正在使用SONAR-TASK 1.2。

任何幫助,歡迎和讚賞!謝謝!

回答

7

您可以直接在聲納中的項目配置中定義排除項。

exclusions

+0

與我使用「sonar.exclude」相比,這有什麼不同?這種方式看起來與我目前使用的幾乎相同,只是它使用的是GUI,我錯了嗎?這怎麼解決我的問題過濾「測試」? 如果這是行得通的,我怎樣才能以編程方式實現這一點?謝謝您的幫助。 – lwijono

+0

我發佈這個作爲替代。基本上他們都做同樣的事情。我真的很驚訝,測試顯示在組件中。它不應該那樣做。該文件說,排除將從src目錄進行評估。所以我不會認爲測試將被分析。你看到組件中有任何類嗎? – oers

+0

我需要首先澄清這一點,因此在組件中,我可以看到「測試」內的軟件包,所以我只能看到軟件包,而不是「測試」作爲組件。在這些包裹裏面,什麼都沒有。沒有分析。我問的原因是因爲我發現它在儀表板中看到它很煩人,因爲它給人的印象是這些軟件包包含在分析中,即使它們不是。 – lwijono

1

從文檔:

自從3.3版本,它也有可能: 排除從正在分析測試文件: 去配置>設置>排除和設置>聲納.tests.exclusions屬性

相關問題