2015-12-16 55 views
3

我正在嘗試將django-jenkins集成到我的django-rest框架應用程序中。django-jenkins - 沒有爲django -restframework生成任何coverage.xml報告

INSTALLED_APPS = (..... 
         ...... 
         'django_jenkins', 
         ....... 
        ) 

對於覆蓋範圍的運行測試用例,根據文檔我已經厭倦了下面的命令。

python manage.py jenkins --enable-coverage 

我能夠成功運行我的測試用例,沒有任何異常。

但在報告目錄中。我只能看到一個junit.xml文件和coverage報告(coverage.xml)沒有生成。

需要幫助來解決此問題,無論我是否缺少任何其他配置。

謝謝

+0

那麼,什麼是命令的輸出?它是否有像「存儲覆蓋信息...」一樣的線? – kmmbvnr

+0

我得到的輸出與覆蓋運行manage.py測試運行覆蓋相同 - 我找不到任何存儲覆蓋信息..消息。 @kmmbvnr –

+0

請在問題 – kmmbvnr

回答

-1

重要:所有的測試必須「綠色」才能看到覆蓋報告。我做了一個實驗,至少有一次測試失敗時,沒有生成覆蓋報告。

另外:

您必須指定覆蓋報告的輸出格式:

$ ./manage.py詹金斯--enable-覆蓋--coverage格式XML

我考慮Django的詹金斯代碼,並看到這個:

def save(self, apps_locations, options): 
     self.coverage.stop() 
     self.coverage.get_data() 
     morfs = self.get_morfs(self.coverage, apps_locations, options) 

     if 'xml' in options['coverage_format']: 
      self.coverage.xml_report(morfs=morfs, outfile=os.path.join(options['output_dir'], 'coverage.xml')) 
     if 'bin' in options['coverage_format']: 
      self.coverage.save() 
     if 'html' in options['coverage_format']: 
      # Dump coverage html 
      self.coverage.html_report(morfs=morfs, directory=os.path.join(options['output_dir'], 'coverage')) 

正如您所看到的,必須指定一種格式才能生成覆蓋率報告。

documentation沒有提及任何關於這一點:

Documentation don't mention nothing about coverage report output format

+0

中添加'manage.py jenkins --enable-coverage'的全部輸出您不必將XML指定爲輸出格式,它是默認參數值。 – kmmbvnr