A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Status | Area | Item | Description | How to Test | ||||||||||||||||||||||
2 | engine.json | Name | Engine name must be present | Does the name match the repository name? | |||||||||||||||||||||||
3 | engine.json | Description | Engine description must be present | Is the description tweet-sized and in line with those at https://codeclimate.com/engines | |||||||||||||||||||||||
4 | engine.json | Maintainer | Maintainer or organization's name must be present | Is the name present? | |||||||||||||||||||||||
5 | engine.json | Languages | Lanuage/framework names that engine analyzes must be present | Is the language field present and accurate? | |||||||||||||||||||||||
6 | engine.json | Version | Engine version must be present | Is the version present? Version can be an arbitrary string | |||||||||||||||||||||||
7 | Dockerfile | MAINTAINER | Dockerfile maintainer must be present | Does it match the engine.json maintiner field? | |||||||||||||||||||||||
8 | Dockerfile | VOLUME | Engine must mount /code as a volume | Is the directive called in the Dockerfile? | |||||||||||||||||||||||
9 | Dockerfile | WORKDIR | The WORKDIR must be set to /code before the CMD is run | Other WORKDIR calls are fine as long as /code is set immediately before CMD | |||||||||||||||||||||||
10 | Dockerfile | USER | The user invoking the engine must have UID/GID 9000 | Is the user created and used in the Dockerfile? | |||||||||||||||||||||||
11 | Dockerfile | CMD | The Dockerfile must provide a CMD to run the engine | Is the CMD call last in the Dockerfile? | |||||||||||||||||||||||
12 | Dockerfile | No EXPOSE | EXPOSE directives are not valid according to the Code Climate Specification | Are there any EXPOSE directives? | |||||||||||||||||||||||
13 | Dockerfile | No ONBUILD | ONBUILD directives are not valid according to the Code Climate Specification | Are there any ONBUILD directives? | |||||||||||||||||||||||
14 | Dockerfile | No ARG | ARG directives are not valid according to the Code Climate Specification | Are there any ARG directives? | |||||||||||||||||||||||
15 | Docker Image | Image size | Built Docker image size must be less than 512MB | Check results of running `docker images` after image is built locally | |||||||||||||||||||||||
16 | CLI Behavior | File Scope | Scope analysis to source files of target language/framework | Does the engine scope file walking as strictly as possible? | |||||||||||||||||||||||
17 | CLI Behavior | include_paths | Use `include_paths` from config.json as the "workspace" of files and paths to analyze | Run codeclimate analyze FILENAME to test | |||||||||||||||||||||||
18 | CLI Behavior | exclude_paths | Do not analyze files listed in exclude paths in a user's .codeclimate.yml | Add file to exclude_paths in .codeclimate.yml, run codeclimate analyze | |||||||||||||||||||||||
19 | CLI Behavior | Tool config file | Support tool's native configuration, e.g. .rubocop.yml, .eslintrc, etc. | Run engine, add config file, compare differences | |||||||||||||||||||||||
20 | CLI Behavior | Custom config functionality | Custom .config.yml configuration should function properly | Add custom config to .codeclimate.yml, run analyze, compare results | |||||||||||||||||||||||
21 | CLI Behavior | Custom config documentation | Custom .config.yml configuration should be documented | Add custom config information to README and documentation for docs.codeclimate.com | |||||||||||||||||||||||
22 | CLI Behavior | Empty project functionality | Do not throw errors if there are no files to analyze | Run against an empty repo or a repo with no valid files present | |||||||||||||||||||||||
23 | CLI Behavior | Error handling | The engine should handle all errors raised by the tool | Run against 10 repos and make sure there are no obvious errors, examine code for error handling | |||||||||||||||||||||||
24 | CLI Behavior | 10 Repos Test | The engine should perform reasonably on repos of all sizes | Run against 10 repos and make sure none time out, and small repos run in reasonable time | |||||||||||||||||||||||
25 | Engine Output | Description | Clearly describes issue being presented. | Do all issues have descriptions? Code constants should also be contained in backticks `` | |||||||||||||||||||||||
26 | Engine Output | Content | Information intended to educate the user on the nature of the issue | Content should be formatted as Markdown. Optional for Style issues. | |||||||||||||||||||||||
27 | Engine Output | Location | Render all relevant source lines | e.g. complexity of a function should display entire function | |||||||||||||||||||||||
28 | Engine Output | Categories | The category of the issue | Is the category for each issue one of the choices? Multiple categories currently not handled. Category can be one of Bug Risk, Clarity, Compatibility, Complexity, Duplication, Performance, Security, Style | |||||||||||||||||||||||
29 | Engine Output | Remediation Points | The amount of effort necessary to resolve reported issue (_not_ severity of the issue). | Does every issue type have remediation points? Style issues generally should be awarded the smallest values (50k / 5 mins). 10,000 remediation points is approximately 1 minute. | |||||||||||||||||||||||
30 | Engine Output | Thresholds | If applicable, quantitative thresholds for triggering an issue to occur are properly tuned | Any issue triggered by a numberical threshold should ship with a sensible default | |||||||||||||||||||||||
31 | .com Behavior | 10 Repos Test | Test 10 repositories for speed, functionality, and grading | The largest, most complex repos in a given language/framework can sometimes be problematic without proper excludes | |||||||||||||||||||||||
32 | .com Behavior | Issue description UI | Descriptions should look good and not be too long | In the UI, do the descriptions take up more than one line? | |||||||||||||||||||||||
33 | .com Behavior | Issue description backticks `` | Anything referring to specific code should render properly in HTML | Class, method, etc. constant names should be styled as code | |||||||||||||||||||||||
34 | .com Behavior | Read up formatting | Readups have properly formatted and spaced Markdown that look good | It is better to have no readup than a bad readup | |||||||||||||||||||||||
35 | .com Behavior | Location rendering | Issue locations cover code properly in code view | In a project, click a class and look in the code view to make sure issues cover proper lines | |||||||||||||||||||||||
36 | .com Behavior | Grades and GPAs | The grades and GPAs produced by Code Climate make intuitive sense | Look at the repos from the 10 repos test. Files which have a lot of issues that are medium-hard to fix should not be As. You should be able to see variation in grade results. Some A, B, C, D, and F files as expected. GPAs impacted when expected. | |||||||||||||||||||||||
37 | |||||||||||||||||||||||||||
38 | |||||||||||||||||||||||||||
39 | |||||||||||||||||||||||||||
40 | |||||||||||||||||||||||||||
41 | |||||||||||||||||||||||||||
42 | |||||||||||||||||||||||||||
43 | |||||||||||||||||||||||||||
44 | |||||||||||||||||||||||||||
45 | |||||||||||||||||||||||||||
46 | |||||||||||||||||||||||||||
47 | |||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||
50 | |||||||||||||||||||||||||||
51 | |||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||
53 | |||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||
100 |