2015-10-02 75 views
0

我在尋找Python靜態代碼分析器時偶然發現了SourceMeter,並且我對輸出印象深刻。我正在嘗試使用SourceMeter插件將SourceMeter輸出與SonarQube接口集成。SonarQube和SourceMeter排除所有源文件

但是,當我嘗試使用SourceMeter插件在我的Python項目上運行SonarQube(sonar-runner)分析時,它排除了我所有的源文件。部分輸出位於下方。如果我通過Eclipse插件或通過命令行運行分析,就會發生這種情況。它只是不想包含這些文件,即使我明確地告訴它包含它們。

任何幫助,這將不勝感激。謝謝。

13:14:03.944 INFO - Base dir: C:\Users\cbreinga\workspace\Password-Reset-Utility 
13:14:03.944 INFO - Working dir: C:\Users\cbreinga\workspace\.metadata\.plugins\org.eclipse.core.resources\.projects\Password-Reset-Utility\org.sonar.ide.eclipse.core 
13:14:03.944 INFO - Source paths: src 
13:14:03.944 INFO - Source encoding: windows-1252, default locale: en_US 
13:14:03.944 INFO - Index files 
13:14:03.945 INFO - Excluded sources: 
13:14:03.945 INFO - **/PyUnitTests/**/* 
13:14:03.945 INFO - **/src/GUI/PopUpWindowCantClose.py 
13:14:03.945 INFO - **/src/Util/Killer.py 
13:14:03.945 INFO - **/src/GUI/ProgressPanel.py 
13:14:03.945 INFO - **/src/GUI/OptionsPanel.py 
... 
13:14:05.000 INFO - 0 files indexed 
13:14:05.001 INFO - Quality profile for python: SourceMeter way 

回答

1

SourceMeter對於Python,只需在包含Python源代碼模塊的目錄中調用即可使用。分析原理如下:

  • 如果目錄包含一個__init__.py文件,數字源分析給定的目錄(即,蟒封裝)遞歸地而它創建於相應的子目錄對應的__init__.py文件。
  • 如果目錄不包含__init__.py文件,SourceMeter會檢查給定目錄的所有第一級子目錄,並遞歸地分析每個包含__init__.py文件的文件(如上例)。
  • 爲了分析未形成python包的python文件,需要將一個空的__init__.py文件添加到分析目錄中。

如果您的聲納屬性文件沒有放在頂級python模塊的__init__.py旁邊,並且在子目錄中沒有找到任何__init__.py文件,它將不會分析任何文件。因此,請確保將聲納屬性文件放置在正確的位置(即,在頂層python模塊的__init__.py文件旁邊)。

+0

問題是我的src文件夾中沒有__init__。使用eclipse插件,它從項目根目錄運行分析,似乎忽略了「sonar.sources」值。我期待從源中列出的目錄運行分析的行爲。因此,它會在src目錄下的包中找到我的源文件,因爲它們都有__init__文件。 – Crbreingan

相關問題