4

ソナーでテストユニットのカバレッジを取得しようとしています。そのために、次の手順に従いました。

  1. でレポートを生成するpython manage.py jenkins --coverage-html-report=report_coverage
  2. でのプロパティの設定/sonar/sonar-3.5.1/conf/sonar.properties:

sonar.dynamicAnalysis=reuseReports sonar.cobertura.reportPath=/var/lib/jenkins/workspace/origami/DEV/SRC/origami/reports/coverage.xml

テストを開始すると、レポートが適切な場所に生成されます。ただし、単体テストは Sonar によって検出されません。手順が足りないのでしょうか、それともすべてが間違っているのでしょうか?

4

3 に答える 3

0

Jenkins では、coverage.xml に、manage.py jenkins が実行されているディレクトリからの相対パスがあることがわかりました。

私の場合、Jenkins とは別のマシンで単体テストを実行する必要があります。Sonar が生成された coverage.xml を使用できるようにするには、Jenkins のワークスペース ディレクトリと同じプロジェクトに相対的な場所にあるフォルダーからテストを実行する必要がありました。

Jenkinsに次のものがあるとします
/ローカル/ジェンキンス/tmp/ワークスペース/my_build
   + my_project
       + アプリ1
       + app2
テストマシンで言うと、次のようになります
/ローカル/テスト
   + my_project
      + アプリ1
      + app2

テスト マシンの /local/test から単体テストを実行します。次に、coverage.xml には my_project/app1/source1.py または my_project/app2/source2.py のような正しい相対パスがあります。

于 2013-11-10T07:59:19.533 に答える
-1

問題があると思います:

sonar.cobertura.reportPath=/var/lib/jenkins/workspace/origami/DEV/SRC/origami/reports/coverage.xml

これを読む:リンク

于 2013-05-13T10:11:40.107 に答える