将规则抽取器编码为声纳格式。

sonar-rules-extractor的Python项目详细描述


…-*-重构文本-*- < BR>
======================================
声纳质量分析规则提取器
====================================== < BR>
什么是声纳规则提取器?
================================== < BR>
提取器是从分析工具(如cppcheck)中提取违反规则的工具,
C++测试、Klocwork等,并将它们转换成声纳规则。 < BR>
为什么要将这些规则转换为声纳规则?
============================================ < BR>
当我们对编码规则进行一致性分析时,此分析的输出将为我们提供
违反规则的源文件行与
这违反了规则。必须给出规则"id"与其描述之间的关联
声纳。 < BR>
考虑到质量分析工具中开发的所有自定义规则
需要一个实用程序来导出这些工具的规则。**声纳规则提取器在那里
为此。** < BR>
…注意::sonar默认有五种规则严重性:``blocker``,``critical`,``major`,
``minor`,``info`。但并非所有的分析工具都是如此。例如,在克鲁克工作,
严重程度用数字表示:1(严重)到10(信息)。 < BR>
Sonar Rules Extractor*将有这些级别的映射,因此它们对Sonar有意义。 < BR>
如何安装?
================== < BR>
如果您已经安装了python**setuptools**,并且有一个直接的internet连接,您只需要
运行以下命令: < BR>
根@localhost:~轻松安装-O2声纳规则提取器 < BR>
如果未安装python**setuptools**,请先安装。 < BR>
如果您没有直接连接到Internet,请下载适合您的发行版的软件包
然后安装。:: < BR>
根@localhost:~ tar zxvf声纳规则提取程序*.tar.gz

根@localhost:~ cd声纳规则提取程序*
root@localhost:~ python setup.py安装-o2

根@localhost:。~# < BR>
对于不想运行命令行安装程序的Windows用户,有一个本机的`.exe``包。 < BR>
如何从代码分析工具中提取规则?
============================================== < BR>
Sonar Rules Extractor**附带了一个命令行工具"Sonar Rules Extractor"。你可以运行它
使用`--help``选项获取信息。:: < BR>
root@localhost:~声纳规则提取程序--帮助
用法:声纳规则提取程序[选项]工具<;输入参数…>; < BR>
<;输入参数…>;取决于工具。通常,如果没有提供参数,
读取标准输入。 < BR>
选项:
--版本显示程序的版本号并退出
-h,--帮助显示此帮助消息并退出
-p模块,--plugin=模块
在提取之前,导入指定的模块并
查找继承"extractor"的类,这些类可以是
与内置设备一起使用。这个选项可以
多次使用。
-f,--格式xml漂亮的格式xml输出。
-l,--列出工具列出所有可用的工具。 < BR>
您可以使用以下命令获取可用的受支持工具列表: < BR>
root@localhost:~声纳规则提取器--列表工具
Pylint、Klocwork、CPPTest、Gnatcheck、QAC、QACPP、CPPCheck、Logiscope < BR>
下面是Pylint的一个提取示例::: < BR>
根@localhost:~ pylint--list msgs sonar rules提取器pylint--format xml>;pylint-sonar-rules.xml
根@localhost:~ cat pylint-sonar-rules.xml
<;?xml version="1.0"encoding="utf-8"?gt;
<;!--提取声纳的"Pylint"规则-->;
<;规则>;
<;rule key="c0102"priority="info">;
<;名称>;
<;![CData[黑名单中的姓名"%s"]]>;<;/姓名>;
<;配置键>;
<;![CData[C0102]]>;<;配置键>;
<;category name="reliability"/>;
<;说明>;
<;![CData[在黑名单中列出姓名时使用(未经授权的姓名)。]]>;<;/description>;
<;/规则>;
<;rule key="c0103"priority="info">;
<;名称>;
<;![CData[无效名称"%s"(应与%s匹配)]>;<;/名称>;
……。
<;名称>;
<;![CData[格式字符串字典键应为字符串,而不是%s]>;<;/名称>;
<;配置键>;
<;![CData[W1300]]>;<;配置键>;
<;category name="reliability"/>;
<;说明>;
<;![CData[当使用命名转换说明符的格式字符串与键不是所有字符串的字典一起使用时使用。]]>;<;/description>;
<;/规则>;
<;/规则>;

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
日期和现在之间的Java时间   java以适当的方式更新jLabel和jTextField   java如何从PQ(单链表)中删除最大值   java可以通过任何方式找出哪些NSF文件属于Domino服务器   java Velocity 2不会设置属性   如何使用java流迭代索引映射列表   maven依赖项在编译期间工作,但在java运行时失败。lang.NoClassDefFoundError&java。lang.ClassNotFoundException   java有没有办法完全隐藏Web应用程序代码?   Android appcompat v7 21库中的java FadingActionBar错误   Eclipse/com中的java AdMob。谷歌。安卓gms。ads.AdView   java My Service表示它正在运行,但其状态尚不清楚,似乎没有绑定   java无法启动Apache Tomcat Web应用程序容器   JDK:java中的命名约定。可丢弃的   Spring SerSecurity中的java身份验证错误   Maven:使用JDK8编译Java7   java在使用ExecutorService时如何管理内存?   comm.jar通信串行端口java   java LibGDX创建动画