java读取sonar信息

    xiaoxiao2021-12-14  23

    对于sonar上某个项目里的信息,可以通过以下java方式读取 官方教程:http://docs.sonarqube.org/display/SONARQUBE45/Using+the+Web+Service+Java+client

    一、查找要查询信息的key

    先看看api,找到你要读取的模块信息的key http://{sonar address}/api/metrics 如下

    <metrics> <metric> <key>lines</key> <name>Lines</name> <description>Lines</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>generated_lines</key> <name>Generated Lines</name> <description>Number of generated lines</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> ..... ..... ..... <metrics>

    二、下载jar

    如果是maven项目,maven包地址:https://mvnrepository.com/artifact/org.codehaus.sonar/sonar-ws-client/2.11 则在pom.xml里加下面依赖

    <dependency> <groupId>org.codehaus.sonar</groupId> <artifactId>sonar-ws-client</artifactId> <!-- It is recommended to use the same version as the requested SonarQube server --> <version>2.11</version> </dependency>

    依赖包

    <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.1.3</version> </dependency>

    如果不是maven,请自行下载sonar-ws-client-2.11.jar包 https://mvnrepository.com/artifact/org.codehaus.sonar/sonar-ws-client/2.11 建议使用2.11版本,高版本可能不适合本样例

    三、java代码样例

    官方例子 Creating Client

    import org.sonar.wsclient.Sonar; Sonar sonar = Sonar.create("http://localhost:9000");

    If the security is enabled, you have to define the credentials:

    Sonar sonar = Sonar.create("http://localhost:9000", "login", "password");

    When using the lib Commons HttpClient 4.0, the constructor is slightly different:

    Sonar sonar = new Sonar(new HttpClient4Connector(new Host("http://localhost:9000")));

    Executing Requests For example to the get the code coverage of the ‘Struts’ project:

    Resource struts = sonar.find(ResourceQuery.createForMetrics("org.apache.struts:struts-parent", "coverage", "lines", "violations")); struts.getMeasure("coverage");

    The methods find() and findAll() accept queries to get measures, code source, rule violations, configuration, metric definitions and dependencies between components. See Javadoc for more information.

    我自己样例,获取代码覆盖率

    //查找要获取信息的Key String[] coverages = { "overall_coverage", "overall_line_coverage", "overall_branch_coverage" }; //创建连接 Sonar sonar = new Sonar(new HttpClient4Connector(new Host(sonar_home_url, sonar_username, sonar_password))); //获取信息,sp.getProjectKey()是sonar项目的id,具体看sonar那个项目页面的地址栏就知道了 Resource struts = sonar.find(ResourceQuery.createForMetrics(sp.getProjectKey(), coverages)); double overallCov = struts.getMeasure(coverages[0]).getValue(); double lineCov = struts.getMeasure(coverages[1]).getValue();

    四、附带部分key表

    <metrics> <metric> <key>lines</key> <name>Lines</name> <description>Lines</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>generated_lines</key> <name>Generated Lines</name> <description>Number of generated lines</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>ncloc</key> <name>Lines of code</name> <description>Non Commenting Lines of Code</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>ncloc_language_distribution</key> <name>Lines of code per language</name> <description> Non Commenting Lines of Code Distributed By Language </description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>generated_ncloc</key> <name>Generated lines of code</name> <description>Generated non Commenting Lines of Code</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>classes</key> <name>Classes</name> <description>Classes</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>files</key> <name>Files</name> <description>Number of files</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>directories</key> <name>Directories</name> <description>Directories</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>packages</key> <name>Packages</name> <description>Packages</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>functions</key> <name>Functions</name> <description>Functions</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>accessors</key> <name>Accessors</name> <description>Accessors</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>statements</key> <name>Statements</name> <description>Number of statements</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>public_api</key> <name>Public API</name> <description>Public API</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>projects</key> <name>Projects</name> <description>Number of projects</description> <domain>Size</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>comment_lines</key> <name>Comment lines</name> <description>Number of comment lines</description> <domain>Documentation</domain> <qualitative>false</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>comment_lines_density</key> <name>Comments (%)</name> <description>Comments balanced by ncloc + comment lines</description> <domain>Documentation</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>comment_blank_lines</key> <name>Blank comments</name> <description>Comments that do not contain comments</description> <domain>Documentation</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>public_documented_api_density</key> <name>Public documented API (%)</name> <description> Public documented classes and functions balanced by ncloc </description> <domain>Documentation</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>public_undocumented_api</key> <name>Public undocumented API</name> <description> Public undocumented classes, functions and variables </description> <domain>Documentation</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>commented_out_code_lines</key> <name>Commented-out LOC</name> <description>Commented lines of code</description> <domain>Documentation</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>complexity</key> <name>Complexity</name> <description>Cyclomatic complexity</description> <domain>Complexity</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>file_complexity</key> <name>Complexity /file</name> <description>Complexity average by file</description> <domain>Complexity</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>FLOAT</val_type> <hidden>false</hidden> </metric> <metric> <key>complexity_in_classes</key> <name>Complexity in classes</name> <description>Cyclomatic complexity in classes</description> <domain>Complexity</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>class_complexity</key> <name>Complexity /class</name> <description>Complexity average by class</description> <domain>Complexity</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>FLOAT</val_type> <hidden>false</hidden> </metric> <metric> <key>complexity_in_functions</key> <name>Complexity in functions</name> <description>Cyclomatic complexity in functions</description> <domain>Complexity</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>function_complexity</key> <name>Complexity /function</name> <description>Complexity average by function</description> <domain>Complexity</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>FLOAT</val_type> <hidden>false</hidden> </metric> <metric> <key>class_complexity_distribution</key> <name>Classes distribution /complexity</name> <description>Classes distribution /complexity</description> <domain>Complexity</domain> <qualitative>true</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DISTRIB</val_type> <hidden>true</hidden> </metric> <metric> <key>function_complexity_distribution</key> <name>Functions distribution /complexity</name> <description>Functions distribution /complexity</description> <domain>Complexity</domain> <qualitative>true</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DISTRIB</val_type> <hidden>false</hidden> </metric> <metric> <key>file_complexity_distribution</key> <name>Files distribution /complexity</name> <description>Files distribution /complexity</description> <domain>Complexity</domain> <qualitative>true</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DISTRIB</val_type> <hidden>false</hidden> </metric> <metric> <key>tests</key> <name>Unit tests</name> <description>Number of unit tests</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>test_execution_time</key> <name>Unit tests duration</name> <description>Execution duration of unit tests</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>MILLISEC</val_type> <hidden>false</hidden> </metric> <metric> <key>test_errors</key> <name>Unit tests errors</name> <description>Number of unit test errors</description> <domain>Tests</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>skipped_tests</key> <name>Skipped unit tests</name> <description>Number of skipped unit tests</description> <domain>Tests</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>test_failures</key> <name>Unit tests failures</name> <description>Number of unit test failures</description> <domain>Tests</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>test_success_density</key> <name>Unit tests success (%)</name> <description>Density of successful unit tests</description> <domain>Tests</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>test_data</key> <name>Unit tests details</name> <description>Unit tests details</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>coverage</key> <name>Coverage</name> <description>Coverage by unit tests</description> <domain>Tests</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_coverage</key> <name>Coverage on new code</name> <description>Coverage of new/changed code</description> <domain>Tests</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>lines_to_cover</key> <name>Lines to cover</name> <description>Lines to cover</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_lines_to_cover</key> <name>Lines to cover on new code</name> <description>Lines to cover on new code</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>uncovered_lines</key> <name>Uncovered lines</name> <description>Uncovered lines</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_uncovered_lines</key> <name>Uncovered lines on new code</name> <description>Uncovered lines on new code</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>line_coverage</key> <name>Line coverage</name> <description>Line coverage</description> <domain>Tests</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_line_coverage</key> <name>Line coverage on new code</name> <description>Line coverage of added/changed code</description> <domain>Tests</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>coverage_line_hits_data</key> <name>Coverage hits by line</name> <description>Coverage hits by line</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>conditions_to_cover</key> <name>Conditions to cover</name> <description>Conditions to cover</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>new_conditions_to_cover</key> <name>Conditions to cover on new code</name> <description>Conditions to cover on new code</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>uncovered_conditions</key> <name>Uncovered conditions</name> <description>Uncovered conditions</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_uncovered_conditions</key> <name>Uncovered conditions on new code</name> <description>Uncovered conditions on new code</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>branch_coverage</key> <name>Condition coverage</name> <description>Condition coverage</description> <domain>Tests</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_branch_coverage</key> <name>Condition coverage on new code</name> <description>Condition coverage of new/changed code</description> <domain>Tests</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>conditions_by_line</key> <name>Conditions by line</name> <description>Conditions by line</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>covered_conditions_by_line</key> <name>Covered conditions by line</name> <description>Covered conditions by line</description> <domain>Tests</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>it_coverage</key> <name>IT coverage</name> <description>Integration tests coverage</description> <domain>Tests (Integration)</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_it_coverage</key> <name>Coverage by IT on new code</name> <description>Integration tests coverage of new/changed code</description> <domain>Tests (Integration)</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>it_lines_to_cover</key> <name>IT lines to cover</name> <description>Lines to cover by integration tests</description> <domain>Tests (Integration)</domain> <qualitative>false</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>new_it_lines_to_cover</key> <name>Lines to cover by IT on new code</name> <description>Lines to cover on new code by integration tests</description> <domain>Tests (Integration)</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>it_uncovered_lines</key> <name>IT uncovered lines</name> <description>Uncovered lines by integration tests</description> <domain>Tests (Integration)</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_it_uncovered_lines</key> <name>Uncovered lines by IT on new code</name> <description> New lines that are not covered by integration tests </description> <domain>Tests (Integration)</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>it_line_coverage</key> <name>IT line coverage</name> <description>Line coverage by integration tests</description> <domain>Tests (Integration)</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_it_line_coverage</key> <name>Line coverage by IT on new code</name> <description> Integration tests line coverage of added/changed code </description> <domain>Tests (Integration)</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>it_coverage_line_hits_data</key> <name>IT coverage hits by line</name> <description>Coverage hits by line by integration tests</description> <domain>Tests (Integration)</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>it_conditions_to_cover</key> <name>IT conditions to cover</name> <description>Conditions to cover by integration tests</description> <domain>Tests (Integration)</domain> <qualitative>false</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>new_it_conditions_to_cover</key> <name>Conditions to cover by IT on new code</name> <description>New conditions to cover by integration tests</description> <domain>Tests (Integration)</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>it_uncovered_conditions</key> <name>IT uncovered conditions</name> <description>Uncovered conditions by integration tests</description> <domain>Tests (Integration)</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_it_uncovered_conditions</key> <name>Uncovered conditions by IT on new code</name> <description> New conditions that are not covered by integration tests </description> <domain>Tests (Integration)</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>it_branch_coverage</key> <name>IT condition coverage</name> <description>Condition coverage by integration tests</description> <domain>Tests (Integration)</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_it_branch_coverage</key> <name>Condition coverage by IT on new code</name> <description> Integration tests condition coverage of new/changed code </description> <domain>Tests (Integration)</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>it_conditions_by_line</key> <name>IT conditions by line</name> <description>IT conditions by line</description> <domain>Tests (Integration)</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>it_covered_conditions_by_line</key> <name>IT covered conditions by line</name> <description>IT covered conditions by line</description> <domain>Tests (Integration)</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>overall_coverage</key> <name>Overall coverage</name> <description>Overall test coverage</description> <domain>Tests (Overall)</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_overall_coverage</key> <name>Overall coverage on new code</name> <description>Overall coverage of new/changed code</description> <domain>Tests (Overall)</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>overall_lines_to_cover</key> <name>Overall lines to cover</name> <description>Lines to cover by all tests</description> <domain>Tests (Overall)</domain> <qualitative>false</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>new_overall_lines_to_cover</key> <name>Overall lines to cover on new code</name> <description>New lines to cover by all tests</description> <domain>Tests (Overall)</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>overall_uncovered_lines</key> <name>Overall uncovered lines</name> <description>Uncovered lines by all tests</description> <domain>Tests (Overall)</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_overall_uncovered_lines</key> <name>Overall uncovered lines on new code</name> <description>New lines that are not covered by any tests</description> <domain>Tests (Overall)</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>overall_line_coverage</key> <name>Overall line coverage</name> <description>Line coverage by all tests</description> <domain>Tests (Overall)</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_overall_line_coverage</key> <name>Overall line coverage on new code</name> <description>Line coverage of added/changed code by all tests</description> <domain>Tests (Overall)</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>overall_coverage_line_hits_data</key> <name>Overall coverage hits by line</name> <description>Coverage hits by all tests and by line</description> <domain>Tests (Overall)</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>overall_conditions_to_cover</key> <name>Overall conditions to cover</name> <description>Conditions to cover by all tests</description> <domain>Tests (Overall)</domain> <qualitative>false</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>new_overall_conditions_to_cover</key> <name>Overall conditions to cover on new code</name> <description>New conditions to cover by all tests</description> <domain>Tests (Overall)</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>overall_uncovered_conditions</key> <name>Overall uncovered conditions</name> <description>Uncovered conditions by all tests</description> <domain>Tests (Overall)</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_overall_uncovered_conditions</key> <name>Overall uncovered conditions on new code</name> <description>New conditions that are not covered by any test</description> <domain>Tests (Overall)</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>overall_branch_coverage</key> <name>Overall condition coverage</name> <description>Condition coverage by all tests</description> <domain>Tests (Overall)</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_overall_branch_coverage</key> <name>Overall condition coverage on new code</name> <description> Condition coverage of new/changed code by all tests </description> <domain>Tests (Overall)</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>overall_conditions_by_line</key> <name>Overall conditions by line</name> <description>Overall conditions by all tests and by line</description> <domain>Tests (Overall)</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>overall_covered_conditions_by_line</key> <name>Overall covered conditions by line</name> <description> Overall covered conditions by all tests and by line </description> <domain>Tests (Overall)</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>duplicated_lines</key> <name>Duplicated lines</name> <description>Duplicated lines</description> <domain>Duplication</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>duplicated_blocks</key> <name>Duplicated blocks</name> <description>Duplicated blocks</description> <domain>Duplication</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>duplicated_files</key> <name>Duplicated files</name> <description>Duplicated files</description> <domain>Duplication</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>duplicated_lines_density</key> <name>Duplicated lines (%)</name> <description>Duplicated lines balanced by statements</description> <domain>Duplication</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>duplications_data</key> <name>Duplications details</name> <description>Duplications details</description> <domain>Duplication</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>duplication_lines_data</key> <name>duplication_lines_data</name> <description/> <domain>Duplication</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>true</hidden> </metric> <metric> <key>violations</key> <name>Issues</name> <description>Issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>blocker_violations</key> <name>Blocker issues</name> <description>Blocker issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>critical_violations</key> <name>Critical issues</name> <description>Critical issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>major_violations</key> <name>Major issues</name> <description>Major issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>minor_violations</key> <name>Minor issues</name> <description>Minor issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>info_violations</key> <name>Info issues</name> <description>Info issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_violations</key> <name>New issues</name> <description>New issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_blocker_violations</key> <name>New Blocker issues</name> <description>New Blocker issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_critical_violations</key> <name>New Critical issues</name> <description>New Critical issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_major_violations</key> <name>New Major issues</name> <description>New Major issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_minor_violations</key> <name>New Minor issues</name> <description>New Minor issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>new_info_violations</key> <name>New Info issues</name> <description>New Info issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>false_positive_issues</key> <name>False positive issues</name> <description>False positive issues</description> <domain>Issues</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>open_issues</key> <name>Open issues</name> <description>Open issues</description> <domain>Issues</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>reopened_issues</key> <name>Reopened issues</name> <description>Reopened issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>confirmed_issues</key> <name>Confirmed issues</name> <description>Confirmed issues</description> <domain>Issues</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>abstractness</key> <name>Abstractness</name> <description>Abstractness</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>true</hidden> </metric> <metric> <key>instability</key> <name>Instability</name> <description>Instability</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>true</hidden> </metric> <metric> <key>distance</key> <name>Distance</name> <description>Distance</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>FLOAT</val_type> <hidden>true</hidden> </metric> <metric> <key>dit</key> <name>Depth in Tree</name> <description>Depth in Inheritance Tree</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>noc</key> <name>Number of Children</name> <description>Number of Children</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>rfc</key> <name>Response for Class</name> <description>Response for Class</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>rfc_distribution</key> <name>Class distribution /RFC</name> <description>Class distribution /RFC</description> <domain>Design</domain> <qualitative>true</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DISTRIB</val_type> <hidden>true</hidden> </metric> <metric> <key>lcom4</key> <name>LCOM4</name> <description>Lack of Cohesion of Functions</description> <domain>Design</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>FLOAT</val_type> <hidden>true</hidden> </metric> <metric> <key>lcom4_blocks</key> <name>LCOM4 blocks</name> <description>LCOM4 blocks</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>true</hidden> </metric> <metric> <key>lcom4_distribution</key> <name>Class distribution /LCOM4</name> <description>Class distribution /LCOM4</description> <domain>Design</domain> <qualitative>true</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DISTRIB</val_type> <hidden>true</hidden> </metric> <metric> <key>suspect_lcom4_density</key> <name>Suspect LCOM4 density</name> <description>Density of classes having LCOM4>1</description> <domain>Design</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>true</hidden> </metric> <metric> <key>ca</key> <name>Afferent couplings</name> <description>Afferent couplings</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>ce</key> <name>Efferent couplings</name> <description>Efferent couplings</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>dsm</key> <name>Dependency Matrix</name> <description>Dependency Matrix</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>package_cycles</key> <name>Package cycles</name> <description>Package cycles</description> <domain>Design</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>package_tangle_index</key> <name>Package tangle index</name> <description>Package tangle index</description> <domain>Design</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>package_tangles</key> <name>File dependencies to cut</name> <description>File dependencies to cut</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>package_feedback_edges</key> <name>Package dependencies to cut</name> <description>Package dependencies to cut</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>package_edges_weight</key> <name>Package edges weight</name> <description>Package edges weight</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>file_cycles</key> <name>File cycles</name> <description>File cycles</description> <domain>Design</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>file_tangle_index</key> <name>File tangle index</name> <description>File tangle index</description> <domain>Design</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>true</hidden> </metric> <metric> <key>file_tangles</key> <name>File tangles</name> <description>Files tangles</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>file_feedback_edges</key> <name>Suspect file dependencies</name> <description>Suspect file dependencies</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>file_edges_weight</key> <name>File edges weight</name> <description>File edges weight</description> <domain>Design</domain> <qualitative>false</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>authors_by_line</key> <name>Authors by line</name> <description>Authors by line</description> <domain>SCM</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>revisions_by_line</key> <name>Revisions by line</name> <description>Revisions by line</description> <domain>SCM</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>last_commit_datetimes_by_line</key> <name>Last commit dates by line</name> <description>Last commit dates by line</description> <domain>SCM</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>unreviewed_violations</key> <name>Unreviewed violations</name> <description>Violations that have not been reviewed yet</description> <domain>Reviews</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>new_unreviewed_violations</key> <name>New unreviewed violations</name> <description>New violations that have not been reviewed yet</description> <domain>Reviews</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>false_positive_reviews</key> <name>False-positive reviews</name> <description>Active false-positive reviews</description> <domain>Reviews</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>active_reviews</key> <name>Active reviews</name> <description>Active open and reopened reviews</description> <domain>Reviews</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>unassigned_reviews</key> <name>Unassigned reviews</name> <description>Active unassigned reviews</description> <domain>Reviews</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>unplanned_reviews</key> <name>Unplanned reviews</name> <description>Active unplanned reviews</description> <domain>Reviews</domain> <qualitative>false</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>sqale_index</key> <name>Technical Debt</name> <description> Total effort (in days) to fix all the issues on the component and therefore to comply to all the requirements. </description> <domain>Technical Debt</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>WORK_DUR</val_type> <hidden>false</hidden> </metric> <metric> <key>new_technical_debt</key> <name>Added Technical Debt</name> <description>Added Technical Debt</description> <domain>Technical Debt</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>WORK_DUR</val_type> <hidden>false</hidden> </metric> <metric> <key>sqale_rating</key> <name>SQALE Rating</name> <description> Rating of the technical debt ratio based on the SQALE Governance Model. </description> <domain>Technical Debt</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>RATING</val_type> <hidden>false</hidden> </metric> <metric> <key>development_cost</key> <name>SQALE Development Cost</name> <description/> <domain>Technical Debt</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>STRING</val_type> <hidden>true</hidden> </metric> <metric> <key>sqale_debt_ratio</key> <name>Technical Debt Ratio</name> <description> Ratio of the actual technical debt compared to the estimated cost to develop the whole source code from scratch. </description> <domain>Technical Debt</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>PERCENT</val_type> <hidden>false</hidden> </metric> <metric> <key>ncloc_data</key> <name>ncloc_data</name> <description/> <domain>Size</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>true</hidden> </metric> <metric> <key>comment_lines_data</key> <name>comment_lines_data</name> <description/> <domain>Documentation</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>true</hidden> </metric> <metric> <key>alert_status</key> <name>Quality Gate Status</name> <description> The project status with regard to its quality gate. </description> <domain>General</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>false</user_managed> <val_type>LEVEL</val_type> <hidden>false</hidden> </metric> <metric> <key>quality_gate_details</key> <name>Quality Gate Details</name> <description> The project detailed status with regard to its quality gate. </description> <domain>General</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>profile</key> <name>Profile</name> <description>Selected quality profile</description> <domain>General</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>false</hidden> </metric> <metric> <key>profile_version</key> <name>Profile version</name> <description>Selected quality profile version</description> <domain>General</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>true</hidden> </metric> <metric> <key>quality_profiles</key> <name>Profiles</name> <description>Details of quality profiles used during analysis</description> <domain>General</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>false</user_managed> <val_type>DATA</val_type> <hidden>true</hidden> </metric> <metric> <key>CXX-DEPENDENCIES</key> <name>Cyclic dependency violations</name> <description/> <domain>C++</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>CXX-COMPILER</key> <name>C++ compiler Warnings</name> <description/> <domain>C++</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>CXX-CPPCHECK</key> <name>CppCheck Errors</name> <description/> <domain>C++</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>CXX-EXTERNAL</key> <name>External C++ rules violations</name> <description/> <domain>C++</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>CXX-PCLINT</key> <name>PC-Lint errors</name> <description/> <domain>C++</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>CXX-RATS</key> <name>RATS issues</name> <description/> <domain>C++</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>CXX-SQUID</key> <name>C++ checks</name> <description/> <domain>C++</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>CXX-VALGRIND</key> <name>Valgrind errors</name> <description/> <domain>C++</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>CXX-VERAXX</key> <name>Vera++ rule violations</name> <description/> <domain>C++</domain> <qualitative>true</qualitative> <direction>-1</direction> <user_managed>false</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> <metric> <key>burned_budget</key> <name>Burned budget</name> <description/> <domain>Management</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>true</user_managed> <val_type>FLOAT</val_type> <hidden>false</hidden> </metric> <metric> <key>business_value</key> <name>Business value</name> <description/> <domain>Management</domain> <qualitative>true</qualitative> <direction>1</direction> <user_managed>true</user_managed> <val_type>FLOAT</val_type> <hidden>false</hidden> </metric> <metric> <key>team_size</key> <name>Team size</name> <description/> <domain>Management</domain> <qualitative>false</qualitative> <direction>0</direction> <user_managed>true</user_managed> <val_type>INT</val_type> <hidden>false</hidden> </metric> </metrics>
    转载请注明原文地址: https://ju.6miu.com/read-963829.html

    最新回复(0)