2015-12-16 56 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