封装静态代码分析器checkstye(.org)的check50扩展

check50-checkstyle的Python项目详细描述


支票50

这是CS50 automarker check50的扩展,允许运行静态代码分析器checkstyle,并将生成的XML报告解释为check50失败。在

Checkstyle让您抱怨样式问题,特别是在Java代码中,除了style50(astyle)所能做的之外。 例如,您可以标记标识符是否不符合Java的camelCase代码约定,或者javadocs丢失。在

为了方便起见,这个包附带了checkstyle(^{})的独立CLI,这就是它如此大的原因。在

示例用法

您需要将此模块导入您的问题集(__init.py__):

importcheck50_checkstyle

并将#- check50-checkstyle声明为.cs50.yml文件中的依赖项:

^{pr2}$

Checkstyle需要一个XML样式定义文件才能运行。 jar文件包含两个这样的定义,遵循sun或google风格的指南,但两者都相当“挑剔”,即抱怨很多琐碎的东西。选择其中一个样式文件并删除不喜欢的内容。在

假设您的问题集包含样式定义style.xml。 然后添加check50支票,如下所示。当然,目标可以更具体。在

@check50.check(exists)defcheckstyle():"""style police"""check50.include("style.xml")check50_checkstyle.run_and_interpret_checkstyle(checks_file='style.xml',target='*.java')

这将把所有警告转储到日志中(因为check50硬编码了它的html模板)。输出示例:

:( style police
    stylistic issues found
    Issues found:
    - In Credit.java(line 4, char 5): Missing a Javadoc comment.
    - In Basket.java(line 2, char 1): Wrong lexicographical order for 'java.util.ArrayList' import. Should be before 'java.util.List'.
    - In Basket.java(line 19, char 5): Missing a Javadoc comment.
    - In Basket.java(line 27, char 5): Missing a Javadoc comment.
    - In Basket.java(line 35, char 5): Missing a Javadoc comment.
    - In Basket.java(line 47): First sentence of Javadoc is missing an ending period.
    - In Item.java(line 27): Line is longer than 100 characters (found 102).
    - In Item.java(line 53, char 40): 'typecast' is not followed by whitespace.
    - In Snack.java(line 20, char 5): Missing a Javadoc comment.

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

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像