##### Overview

- Download PMD 5.0.4
- What's new in PMD 5.0.4
- PMD in the news
- PMD-related products and books
- Best practices
- Future directions
- Similar projects
- Credits
- License
- What does 'PMD' mean?

##### Usage

- Installation
- Command line usage
- Ant task usage
- Maven plugin usage
- Mvn plugin usage
- IDE plugin usage
- Suppressing warnings
- Finding duplicated code
- JSP support

##### Customizing PMD

- Compiling PMD
- How to write a rule
- Writing XPath rules
- How to make a rule set
- How it works
- Rule guidelines
- PMD developers information
- PMD Release Process

##### For example

- Run PMD on a Sourceforge project

##### Misc.

- XPath tutorial (Gregorian)

##### Rule Sets

- ecmascript
  - Basic Ecmascript
  - Braces
  - Unnecessary
- java
  - Android
  - Basic
  - Braces
  - Clone Implementation
  - Code Size
  - Comments
  - Controversial
  - Coupling
  - Design
  - Empty Code
  - Finalizer
  - Import Statements
  - J2EE
  - JavaBeans
  - JUnit
  - Jakarta Commons Logging
  - Java Logging
  - Migration
  - Naming
  - Optimization
  - Strict Exceptions
  - String and StringBuffer
  - Security Code Guidelines
  - Type Resolution
  - Unnecessary
  - Unused Code
- jsp
  - Basic JSF
  - Basic JSP
- xml
  - Basic XML
- xsl
  - XPath in XSL

##### Project Documentation

- Project Information
- Project Reports
  - Source Xref
  - Test Source Xref
  - JavaDocs
  - Test JavaDocs
  - PMD Report
  - CPD Report
  - Checkstyle
  - Checkstyle
  - Surefire Report
  - Clover

## Surefire Report

## Summary

[Summary] [Package List] [Test Cases]

Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | ---
924 | 0 | 0 | 6 | 99.351% | 76.63

Note: failures are anticipated and checked for with assertions while errors are unanticipated.

## Package List

[Summary] [Package List] [Test Cases]

Package | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | ---
net.sourceforge.pmd.lang.java.rule.strings | 6 | 0 | 0 | 0 | 100% | 2.668
net.sourceforge.pmd.symboltable | 82 | 0 | 0 | 0 | 100% | 0.082
net.sourceforge.pmd.lang.java.rule.naming | 1 | 0 | 0 | 0 | 100% | 0.323
net.sourceforge.pmd.renderers | 56 | 0 | 0 | 0 | 100% | 1.01
net.sourceforge.pmd.lang.java.rule.unnecessary | 1 | 0 | 0 | 0 | 100% | 2.038
net.sourceforge.pmd.lang.ecmascript.ast | 2 | 0 | 0 | 0 | 100% | 0.204
net.sourceforge.pmd.lang.java.rule.migrating | 1 | 0 | 0 | 0 | 100% | 0.251
net.sourceforge.pmd.lang.jsp.rule.basic | 1 | 0 | 0 | 0 | 100% | 0.616
net.sourceforge.pmd.lang.java.rule.unusedcode | 1 | 0 | 0 | 0 | 100% | 0.218
net.sourceforge.pmd.lang.java.rule.strictexception | 1 | 0 | 0 | 0 | 100% | 0.216
net.sourceforge.pmd.ast | 132 | 0 | 0 | 0 | 100% | 0.208
net.sourceforge.pmd.lang.ecmascript | 4 | 0 | 0 | 0 | 100% | 0.006
net.sourceforge.pmd.ant | 17 | 0 | 0 | 0 | 100% | 4.129
net.sourceforge.pmd.lang.java.rule.imports | 1 | 0 | 0 | 0 | 100% | 0.179
net.sourceforge.pmd.lang.java.rule.typeresolution.xml | 1 | 0 | 0 | 1 | 0% | 0.002
net.sourceforge.pmd.lang.jsp.rule.basicjsf | 1 | 0 | 0 | 0 | 100% | 0.238
net.sourceforge.pmd.lang.xsl.rule.xpath | 1 | 0 | 0 | 0 | 100% | 0.052
net.sourceforge.pmd.util | 19 | 0 | 0 | 0 | 100% | 0.011
net.sourceforge.pmd.lang.xml.rule | 4 | 0 | 0 | 0 | 100% | 0.292
net.sourceforge.pmd.util.filter | 5 | 0 | 0 | 0 | 100% | 0.001
net.sourceforge.pmd.lang.ecmascript.rule.basic | 1 | 0 | 0 | 0 | 100% | 0.59
net.sourceforge.pmd.lang.ast.xpath | 1 | 0 | 0 | 0 | 100% | 0.004
net.sourceforge.pmd.typeresolution | 17 | 0 | 0 | 0 | 100% | 0.044
net.sourceforge.pmd.testframework | 3 | 0 | 0 | 3 | 0% | 2.461
net.sourceforge.pmd.lang.java.rule.clone | 1 | 0 | 0 | 0 | 100% | 0.245
net.sourceforge.pmd.lang.java.rule.optimizations | 1 | 0 | 0 | 0 | 100% | 0.494
net.sourceforge.pmd.lang.java.rule.loggingjakartacommons | 1 | 0 | 0 | 0 | 100% | 0.066
net.sourceforge.pmd.jaxen | 17 | 0 | 0 | 0 | 100% | 0.075
net.sourceforge.pmd.lang.java.rule.comments | 2 | 0 | 0 | 0 | 100% | 0.042
net.sourceforge.pmd.lang.java.rule | 2 | 0 | 0 | 0 | 100% | 0.001
net.sourceforge.pmd.properties | 61 | 0 | 0 | 1 | 98.361% | 0.193
net.sourceforge.pmd.lang.jsp.ast | 50 | 0 | 0 | 0 | 100% | 0.343
net.sourceforge.pmd.cli | 4 | 0 | 0 | 0 | 100% | 0.178
net.sourceforge.pmd.lang.java.rule.braces | 1 | 0 | 0 | 0 | 100% | 0.215
net.sourceforge.pmd.lang.xml | 4 | 0 | 0 | 0 | 100% | 0.008
net.sourceforge.pmd.lang.ecmascript.rule.braces | 1 | 0 | 0 | 0 | 100% | 0.156
net.sourceforge.pmd.lang.java.rule.android | 1 | 0 | 0 | 0 | 100% | 0.02
net.sourceforge.pmd.lang.java.rule.empty | 1 | 0 | 0 | 0 | 100% | 0.371
net.sourceforge.pmd.lang.cpp | 1 | 0 | 0 | 0 | 100% | 0.002
net.sourceforge.pmd.lang.java.rule.codesize | 8 | 0 | 0 | 0 | 100% | 0.315
net.sourceforge.pmd.lang.dfa.report | 7 | 0 | 0 | 0 | 100% | 0.303
net.sourceforge.pmd.lang.java.rule.junit | 1 | 0 | 0 | 0 | 100% | 0.334
net.sourceforge.pmd.lang.ecmascript.rule.unnecessary | 1 | 0 | 0 | 0 | 100% | 0.261
net.sourceforge.pmd.stat | 82 | 0 | 0 | 0 | 100% | 0.385
net.sourceforge.pmd.lang.java.rule.controversial | 1 | 0 | 0 | 0 | 100% | 0.882
net.sourceforge.pmd.dfa | 46 | 0 | 0 | 0 | 100% | 0.447
net.sourceforge.pmd | 196 | 0 | 0 | 0 | 100% | 3.584
net.sourceforge.pmd.lang.java.rule.finalizers | 1 | 0 | 0 | 0 | 100% | 0.061
net.sourceforge.pmd.lang.java.rule.javabeans | 1 | 0 | 0 | 0 | 100% | 0.119
net.sourceforge.pmd.coverage | 2 | 0 | 0 | 0 | 100% | 32.421
net.sourceforge.pmd.lang | 2 | 0 | 0 | 0 | 100% | 0.001
net.sourceforge.pmd.lang.java.rule.loggingjava | 1 | 0 | 0 | 0 | 100% | 0.042
net.sourceforge.pmd.lang.java.rule.sunsecure | 1 | 0 | 0 | 0 | 100% | 0.27
net.sourceforge.pmd.lang.java.rule.coupling | 1 | 0 | 0 | 0 | 100% | 0.109
net.sourceforge.pmd.lang.java.rule.typeresolution | 4 | 0 | 0 | 0 | 100% | 0.12
net.sourceforge.pmd.lang.java.rule.basic | 1 | 0 | 0 | 0 | 100% | 3.348
net.sourceforge.pmd.lang.java.rule.j2ee | 1 | 0 | 0 | 0 | 100% | 0.306
xml.java-design.UseVarargs:method\u002C do not varargs as the signature is dictated by an interface\n\/\/ TODO Once this is implemented\u002C perhaps it should be optional? The compiler will technically let you use varargs.(net.sourceforge.pmd.testframework | 1 | 0 | 0 | 1 | 0% | 4.752
net.sourceforge.pmd.lang.xml.rule.basic | 1 | 0 | 0 | 0 | 100% | 0.082
net.sourceforge.pmd.lang.java.rule.design | 9 | 0 | 0 | 0 | 100% | 9.967
net.sourceforge.pmd.cpd | 49 | 0 | 0 | 0 | 100% | 0.269

Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

### net.sourceforge.pmd.lang.java.rule.strings

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| AvoidDuplicateLiteralsRuleTest | 5 | 0 | 0 | 0 | 100% | 0.044
| StringsRulesTest | 1 | 0 | 0 | 0 | 100% | 2.624

### net.sourceforge.pmd.symboltable

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| VariableUsageFinderFunctionTest | 1 | 0 | 0 | 0 | 100% | 0.001
| MethodScopeTest | 3 | 0 | 0 | 0 | 100% | 0.002
| SourceFileScopeTest | 4 | 0 | 0 | 0 | 100% | 0.002
| MethodNameDeclarationTest | 1 | 0 | 0 | 0 | 100% | 0.001
| AcceptanceTest | 8 | 0 | 0 | 0 | 100% | 0.008
| ScopeCreationVisitorTest | 1 | 0 | 0 | 0 | 100% | 0.001
| TypeSetTest | 18 | 0 | 0 | 0 | 100% | 0.019
| NameOccurrencesTest | 7 | 0 | 0 | 0 | 100% | 0.006
| GlobalScopeTest | 2 | 0 | 0 | 0 | 100% | 0.003
| ImageFinderFunctionTest | 2 | 0 | 0 | 0 | 100% | 0.001
| ClassScopeTest | 19 | 0 | 0 | 0 | 100% | 0.019
| LocalScopeTest | 8 | 0 | 0 | 0 | 100% | 0.012
| VariableNameDeclarationTest | 8 | 0 | 0 | 0 | 100% | 0.007

### net.sourceforge.pmd.lang.java.rule.naming

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| NamingRulesTest | 1 | 0 | 0 | 0 | 100% | 0.323

### net.sourceforge.pmd.renderers

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| YAHTMLRendererTest | 5 | 0 | 0 | 0 | 100% | 0.022
| CSVRendererTest | 5 | 0 | 0 | 0 | 100% | 0.007
| VBHTMLRendererTest | 5 | 0 | 0 | 0 | 100% | 0.005
| XMLRendererTest | 5 | 0 | 0 | 0 | 100% | 0.025
| SummaryHTMLRendererTest | 5 | 0 | 0 | 0 | 100% | 0.01
| TextRendererTest | 5 | 0 | 0 | 0 | 100% | 0.006
| PapariTextRendererTest | 5 | 0 | 0 | 0 | 100% | 0.01
| EmacsRendererTest | 5 | 0 | 0 | 0 | 100% | 0.014
| XSLTRendererTest | 1 | 0 | 0 | 0 | 100% | 0.896
| HTMLRendererTest | 5 | 0 | 0 | 0 | 100% | 0.004
| TextPadRendererTest | 5 | 0 | 0 | 0 | 100% | 0.004
| IDEAJRendererTest | 5 | 0 | 0 | 0 | 100% | 0.007

### net.sourceforge.pmd.lang.java.rule.unnecessary

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| UnnecessaryRulesTest | 1 | 0 | 0 | 0 | 100% | 2.038

### net.sourceforge.pmd.lang.ecmascript.ast

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| EcmascriptParserTest | 1 | 0 | 0 | 0 | 100% | 0.202
| SourceCodePositionerTest | 1 | 0 | 0 | 0 | 100% | 0.002

### net.sourceforge.pmd.lang.java.rule.migrating

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| MigratingRulesTest | 1 | 0 | 0 | 0 | 100% | 0.251

### net.sourceforge.pmd.lang.jsp.rule.basic

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BasicRulesTest | 1 | 0 | 0 | 0 | 100% | 0.616

### net.sourceforge.pmd.lang.java.rule.unusedcode

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| UnusedCodeRulesTest | 1 | 0 | 0 | 0 | 100% | 0.218

### net.sourceforge.pmd.lang.java.rule.strictexception

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| StrictExceptionRulesTest | 1 | 0 | 0 | 0 | 100% | 0.216

### net.sourceforge.pmd.ast

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| ASTFormalParameterTest | 1 | 0 | 0 | 0 | 100% | 0.001
| SimpleNodeTest | 21 | 0 | 0 | 0 | 100% | 0.033
| ASTLiteralTest | 7 | 0 | 0 | 0 | 100% | 0.019
| ASTBooleanLiteralTest | 2 | 0 | 0 | 0 | 100% | 0.004
| ASTLocalVariableDeclarationTest | 3 | 0 | 0 | 0 | 100% | 0.003
| EncodingTest | 0 | 0 | 0 | 0 | 0% | 0.002
| MethodDeclTest | 8 | 0 | 0 | 0 | 100% | 0.004
| ASTBlockStatementTest | 2 | 0 | 0 | 0 | 100% | 0.002
| ParserCornersTest | 4 | 0 | 0 | 0 | 100% | 0.011
| ASTVariableDeclaratorIdTest | 3 | 0 | 0 | 0 | 100% | 0.002
| ASTFieldDeclarationTest | 5 | 0 | 0 | 0 | 100% | 0.006
| ASTSwitchLabelTest | 2 | 0 | 0 | 0 | 100% | 0.004
| ASTAnnotationTest | 3 | 0 | 0 | 0 | 100% | 0.002
| ASTThrowStatementTest | 2 | 0 | 0 | 0 | 100% | 0.003
| ASTInitializerTest | 1 | 0 | 0 | 0 | 100% | 0.001
| AccessNodeTest | 13 | 0 | 0 | 0 | 100% | 0.01
| ASTMethodDeclarationTest | 1 | 0 | 0 | 0 | 100% | 0.001
| JDKVersionTest | 33 | 0 | 0 | 0 | 100% | 0.077
| ASTAssignmentOperatorTest | 3 | 0 | 0 | 0 | 100% | 0.004
| ASTImportDeclarationTest | 4 | 0 | 0 | 0 | 100% | 0.005
| ClassDeclTest | 5 | 0 | 0 | 0 | 100% | 0.004
| ASTPrimarySuffixTest | 2 | 0 | 0 | 0 | 100% | 0.003
| FieldDeclTest | 7 | 0 | 0 | 0 | 100% | 0.007

### net.sourceforge.pmd.lang.ecmascript

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| EcmascriptParserOptionsTest | 4 | 0 | 0 | 0 | 100% | 0.006

### net.sourceforge.pmd.ant

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| FormatterTest | 1 | 0 | 0 | 0 | 100% | 0.011
| PMDTaskTest | 16 | 0 | 0 | 0 | 100% | 4.118

### net.sourceforge.pmd.lang.java.rule.imports

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| ImportsRulesTest | 1 | 0 | 0 | 0 | 100% | 0.179

### net.sourceforge.pmd.lang.java.rule.typeresolution.xml

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| MyTestCase | 1 | 0 | 0 | 1 | 0% | 0.002

### net.sourceforge.pmd.lang.jsp.rule.basicjsf

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BasicJsfRulesTest | 1 | 0 | 0 | 0 | 100% | 0.238

### net.sourceforge.pmd.lang.xsl.rule.xpath

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| XPathRulesTest | 1 | 0 | 0 | 0 | 100% | 0.052

### net.sourceforge.pmd.util

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| StringUtilTest | 7 | 0 | 0 | 0 | 100% | 0.007
| ApplierTest | 1 | 0 | 0 | 0 | 100% | 0
| DateTimeUtilTest | 1 | 0 | 0 | 0 | 100% | 0
| CompoundListTest | 5 | 0 | 0 | 0 | 100% | 0.002
| TypeMapTest | 5 | 0 | 0 | 0 | 100% | 0.002

### net.sourceforge.pmd.lang.xml.rule

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| AbstractXmlRuleTest | 1 | 0 | 0 | 0 | 100% | 0.109
| AbstractDomXmlRuleTest | 3 | 0 | 0 | 0 | 100% | 0.183

### net.sourceforge.pmd.util.filter

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| RegexStringFilterTest | 5 | 0 | 0 | 0 | 100% | 0.001

### net.sourceforge.pmd.lang.ecmascript.rule.basic

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BasicRulesTest | 1 | 0 | 0 | 0 | 100% | 0.59

### net.sourceforge.pmd.lang.ast.xpath

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| AttributeAxisIteratorTest | 1 | 0 | 0 | 0 | 100% | 0.004

### net.sourceforge.pmd.typeresolution

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| PMDASMClassLoaderTest | 3 | 0 | 0 | 0 | 100% | 0.004
| ClassTypeResolverTest | 14 | 0 | 0 | 0 | 100% | 0.04

### net.sourceforge.pmd.testframework

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| SimpleAggregatorTst | 1 | 0 | 0 | 1 | 0% | 1.014
| SimpleAggregatorTst | 1 | 0 | 0 | 1 | 0% | 0.135
| SimpleAggregatorTst | 1 | 0 | 0 | 1 | 0% | 1.312

### net.sourceforge.pmd.lang.java.rule.clone

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CloneRulesTest | 1 | 0 | 0 | 0 | 100% | 0.245

### net.sourceforge.pmd.lang.java.rule.optimizations

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| OptimizationsRulesTest | 1 | 0 | 0 | 0 | 100% | 0.494

### net.sourceforge.pmd.lang.java.rule.loggingjakartacommons

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| LoggingJakartaCommonsRulesTest | 1 | 0 | 0 | 0 | 100% | 0.066

### net.sourceforge.pmd.jaxen

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| MatchesFunctionTest | 2 | 0 | 0 | 0 | 100% | 0.01
| AttributeAxisIteratorTest | 1 | 0 | 0 | 0 | 100% | 0.007
| RegexpAcceptanceTest | 2 | 0 | 0 | 0 | 100% | 0.001
| DocumentNavigatorTest | 11 | 0 | 0 | 0 | 100% | 0.049
| AttributeTest | 1 | 0 | 0 | 0 | 100% | 0.008

### net.sourceforge.pmd.lang.java.rule.comments

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| AbstractCommentRuleTest | 1 | 0 | 0 | 0 | 100% | 0.002
| CommentRulesTest | 1 | 0 | 0 | 0 | 100% | 0.04

### net.sourceforge.pmd.lang.java.rule

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| XPathRuleTest | 2 | 0 | 0 | 0 | 100% | 0.001

### net.sourceforge.pmd.properties

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| DoublePropertyTest | 6 | 0 | 0 | 0 | 100% | 0.014
| EnumeratedPropertyTest | 6 | 0 | 0 | 0 | 100% | 0.026
| BooleanPropertyTest | 6 | 0 | 0 | 0 | 100% | 0.009
| IntegerPropertyTest | 6 | 0 | 0 | 0 | 100% | 0.023
| MethodPropertyTest | 8 | 0 | 0 | 0 | 100% | 0.039
| CharacterPropertyTest | 6 | 0 | 0 | 0 | 100% | 0.007
| TypePropertyTest | 6 | 0 | 0 | 0 | 100% | 0.021
| FloatPropertyTest | 6 | 0 | 0 | 0 | 100% | 0.024
| StringPropertyTest | 6 | 0 | 0 | 0 | 100% | 0.006
| PropertyAccessorTest | 5 | 0 | 0 | 1 | 80% | 0.024

### net.sourceforge.pmd.lang.jsp.ast

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| OpenTagRegisterTest | 5 | 0 | 0 | 0 | 100% | 0.003
| JspPageStyleTest | 9 | 0 | 0 | 0 | 100% | 0.066
| JspDocStyleTest | 35 | 0 | 0 | 0 | 100% | 0.142
| XPathJspRuleTest | 1 | 0 | 0 | 0 | 100% | 0.132

### net.sourceforge.pmd.cli

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CLITest | 4 | 0 | 0 | 0 | 100% | 0.178

### net.sourceforge.pmd.lang.java.rule.braces

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BracesRulesTest | 1 | 0 | 0 | 0 | 100% | 0.215

### net.sourceforge.pmd.lang.xml

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| XmlParserOptionsTest | 4 | 0 | 0 | 0 | 100% | 0.008

### net.sourceforge.pmd.lang.ecmascript.rule.braces

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BracesRulesTest | 1 | 0 | 0 | 0 | 100% | 0.156

### net.sourceforge.pmd.lang.java.rule.android

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| AndroidRulesTest | 1 | 0 | 0 | 0 | 100% | 0.02

### net.sourceforge.pmd.lang.java.rule.empty

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| EmptyRulesTest | 1 | 0 | 0 | 0 | 100% | 0.371

### net.sourceforge.pmd.lang.cpp

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| ContinuationReaderTest | 1 | 0 | 0 | 0 | 100% | 0.002

### net.sourceforge.pmd.lang.java.rule.codesize

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CyclomaticComplexityTest | 5 | 0 | 0 | 0 | 100% | 0.048
| CodesizeRulesTest | 1 | 0 | 0 | 0 | 100% | 0.232
| NPathComplexityTest | 2 | 0 | 0 | 0 | 100% | 0.035

### net.sourceforge.pmd.lang.dfa.report

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| ViolationNodeTest | 7 | 0 | 0 | 0 | 100% | 0.303

### net.sourceforge.pmd.lang.java.rule.junit

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| JunitRulesTest | 1 | 0 | 0 | 0 | 100% | 0.334

### net.sourceforge.pmd.lang.ecmascript.rule.unnecessary

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| UnnecessaryRulesTest | 1 | 0 | 0 | 0 | 100% | 0.261

### net.sourceforge.pmd.stat

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| StatisticalRuleTest | 75 | 0 | 0 | 0 | 100% | 0.383
| MetricTest | 7 | 0 | 0 | 0 | 100% | 0.002

### net.sourceforge.pmd.lang.java.rule.controversial

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| ControversialRulesTest | 1 | 0 | 0 | 0 | 100% | 0.882

### net.sourceforge.pmd.dfa

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| DAAPathFinderTest | 1 | 0 | 0 | 0 | 100% | 0.168
| AcceptanceTest | 31 | 0 | 0 | 0 | 100% | 0.234
| VariableAccessTest | 1 | 0 | 0 | 0 | 100% | 0.002
| DataFlowNodeTest | 5 | 0 | 0 | 0 | 100% | 0.01
| StatementAndBraceFinderTest | 6 | 0 | 0 | 0 | 100% | 0.012
| GeneralFiddlingTest | 1 | 0 | 0 | 0 | 100% | 0.02
| StructureTest | 1 | 0 | 0 | 0 | 100% | 0.001

### net.sourceforge.pmd

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| RuleSetWriterTest | 1 | 0 | 0 | 0 | 100% | 0.006
| RuleViolationTest | 0 | 0 | 0 | 0 | 0% | 0.003
| RuleSetFactoryTest | 39 | 0 | 0 | 0 | 100% | 3.348
| ReportTest | 12 | 0 | 0 | 0 | 100% | 0.019
| RuleSetReferenceIdTest | 20 | 0 | 0 | 0 | 100% | 0.029
| RuleReferenceTest | 3 | 0 | 0 | 0 | 100% | 0.001
| RuleViolationComparatorTest | 1 | 0 | 0 | 0 | 100% | 0.001
| ASTPackageDeclarationTest | 1 | 0 | 0 | 0 | 100% | 0.014
| ConfigurationTest | 17 | 0 | 0 | 0 | 100% | 0.012
| AbstractRuleTest | 14 | 0 | 0 | 0 | 100% | 0.028
| SuppressWarningsTest | 17 | 0 | 0 | 0 | 100% | 0.03
| ReadableDurationTest | 4 | 0 | 0 | 0 | 100% | 0.001
| LanguageVersionTest | 28 | 0 | 0 | 0 | 100% | 0.02
| FileSelectorTest | 3 | 0 | 0 | 0 | 100% | 0
| RuleContextTest | 5 | 0 | 0 | 0 | 100% | 0.001
| LanguageVersionDiscovererTest | 3 | 0 | 0 | 0 | 100% | 0.008
| ExcludeLinesTest | 2 | 0 | 0 | 0 | 100% | 0.012
| RuleSetTest | 26 | 0 | 0 | 0 | 100% | 0.051

### net.sourceforge.pmd.lang.java.rule.finalizers

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| FinalizersRulesTest | 1 | 0 | 0 | 0 | 100% | 0.061

### net.sourceforge.pmd.lang.java.rule.javabeans

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| JavabeansRulesTest | 1 | 0 | 0 | 0 | 100% | 0.119

### net.sourceforge.pmd.coverage

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| PMDCoverageTest | 2 | 0 | 0 | 0 | 100% | 32.421

### net.sourceforge.pmd.lang

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| ParserOptionsTest | 2 | 0 | 0 | 0 | 100% | 0.001

### net.sourceforge.pmd.lang.java.rule.loggingjava

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| LoggingJavaRulesTest | 1 | 0 | 0 | 0 | 100% | 0.042

### net.sourceforge.pmd.lang.java.rule.sunsecure

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| SunSecureRulesTest | 1 | 0 | 0 | 0 | 100% | 0.27

### net.sourceforge.pmd.lang.java.rule.coupling

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CouplingRulesTest | 1 | 0 | 0 | 0 | 100% | 0.109

### net.sourceforge.pmd.lang.java.rule.typeresolution

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CloneMethodMustImplementCloneableTest | 1 | 0 | 0 | 0 | 100% | 0.001
| LooseCouplingTest | 1 | 0 | 0 | 0 | 100% | 0.038
| SignatureDeclareThrowsExceptionTest | 1 | 0 | 0 | 0 | 100% | 0.033
| UnusedImportsTest | 1 | 0 | 0 | 0 | 100% | 0.048

### net.sourceforge.pmd.lang.java.rule.basic

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BasicRulesTest | 1 | 0 | 0 | 0 | 100% | 3.348

### net.sourceforge.pmd.lang.java.rule.j2ee

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| J2EERulesTest | 1 | 0 | 0 | 0 | 100% | 0.306

### xml.java-design.UseVarargs:method\u002C do not varargs as the signature is dictated by an interface\n\/\/ TODO Once this is implemented\u002C perhaps it should be optional? The compiler will technically let you use varargs.(net.sourceforge.pmd.testframework

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| SimpleAggregatorTst) | 1 | 0 | 0 | 1 | 0% | 4.752

### net.sourceforge.pmd.lang.xml.rule.basic

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BasicRulesTest | 1 | 0 | 0 | 0 | 100% | 0.082

### net.sourceforge.pmd.lang.java.rule.design

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| UncommentedEmptyMethodRuleTest | 1 | 0 | 0 | 0 | 100% | 0.04
| UncommentedEmptyConstructorRuleTest | 3 | 0 | 0 | 0 | 100% | 0.096
| DesignRulesTest | 1 | 0 | 0 | 0 | 100% | 9.504
| TooManyHttpFilterTest | 2 | 0 | 0 | 0 | 100% | 0.001
| ConfusingTernaryRuleTest | 1 | 0 | 0 | 0 | 100% | 0.041
| ConstructorCallsOverridableMethodTest | 1 | 0 | 0 | 0 | 100% | 0.285

### net.sourceforge.pmd.cpd

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CsTokenizerTest | 9 | 0 | 0 | 0 | 100% | 0.011
| FileReporterTest | 4 | 0 | 0 | 0 | 100% | 0.006
| FortranTokenizerTest | 1 | 0 | 0 | 0 | 100% | 0.007
| CPDTest | 3 | 0 | 0 | 0 | 100% | 0.024
| AnyTokenizerTest | 1 | 0 | 0 | 0 | 100% | 0
| EcmascriptTokenizerTest | 2 | 0 | 0 | 0 | 100% | 0.002
| XMLRendererTest | 4 | 0 | 0 | 0 | 100% | 0.033
| SourceCodeTest | 1 | 0 | 0 | 0 | 100% | 0.001
| MatchAlgorithmTest | 2 | 0 | 0 | 0 | 100% | 0.001
| JavaTokensTokenizerTest | 11 | 0 | 0 | 0 | 100% | 0.157
| RubyTokenizerTest | 1 | 0 | 0 | 0 | 100% | 0.001
| CPPTokenizerTest | 6 | 0 | 0 | 0 | 100% | 0.02
| MatchTest | 2 | 0 | 0 | 0 | 100% | 0.001
| TokenEntryTest | 1 | 0 | 0 | 0 | 100% | 0.002
| LanguageFactoryTest | 1 | 0 | 0 | 0 | 100% | 0.003

## Test Cases

[Summary] [Package List] [Test Cases]

### AbstractCommentRuleTest

| testFilteredCommentIn | 0

### StatisticalRuleTest

| testSMT5 | 0.009
| testTMS | 0.007
| testTMS1 | 0.006
| testTMS2 | 0.007
| testTMS3 | 0.008
| testTMS4 | 0.009
| testTMS5 | 0.009
| testMetrics | 0.006
| testExpectedMinimum | 0.002
| testSingleDatapoint | 0.003
| testS | 0.005
| testS1 | 0.004
| testS2 | 0.005
| testS3 | 0.005
| testS4 | 0.004
| testS5 | 0.005
| testT | 0.008
| testT1 | 0.008
| testT2 | 0.007
| testT3 | 0.01
| testT4 | 0.007
| testT5 | 0.007
| testM | 0.006
| testM1 | 0.006
| testM2 | 0.007
| testM3 | 0.006
| testM4 | 0.004
| testM5 | 0.006
| testST | 0.006
| testST1 | 0.006
| testST2 | 0.006
| testST3 | 0.004
| testST4 | 0.004
| testST5 | 0.006
| testTS | 0.005
| testTS1 | 0.006
| testTS2 | 0.005
| testTS3 | 0.005
| testTS4 | 0.005
| testTS5 | 0.004
| testSM | 0.005
| testSM1 | 0.005
| testSM2 | 0.005
| testSM3 | 0.004
| testSM4 | 0.005
| testSM5 | 0.006
| testMS | 0.005
| testMS1 | 0.005
| testMS2 | 0.004
| testMS3 | 0.006
| testMS4 | 0.006
| testMS5 | 0.006
| testTM | 0.006
| testTM1 | 0.006
| testTM2 | 0.006
| testTM3 | 0.004
| testTM4 | 0.004
| testTM5 | 0.004
| testMT | 0.004
| testMT1 | 0.004
| testMT2 | 0.003
| testMT3 | 0.004
| testMT4 | 0.004
| testMT5 | 0.004
| testSTM | 0.004
| testSTM1 | 0.003
| testSTM2 | 0.003
| testSTM3 | 0.002
| testSTM4 | 0.002
| testSTM5 | 0.003
| testSMT | 0.003
| testSMT1 | 0.003
| testSMT2 | 0.002
| testSMT3 | 0.003
| testSMT4 | 0.002

### CsTokenizerTest

| testStrings | 0.007
| testSimpleClassMethodMultipleLines | 0
| testCommentsIgnored1 | 0
| testCommentsIgnored2 | 0
| testCommentsIgnored3 | 0.001
| testMoreTokens | 0.001
| testSimpleClass | 0.001
| testSimpleClassDuplicatedTokens | 0.001
| testOpenString | 0

### FileReporterTest

| testEmptyReport | 0
| testCreation | 0
| testReport | 0.005
| testInvalidFile | 0.001

### FormatterTest

| testNull | 0.011

### AbstractXmlRuleTest

| testVisit | 0.109

### RuleSetWriterTest

| testWrite | 0.006

### BasicJsfRulesTest

| testAll | 0.238

### ASTFormalParameterTest

| testVarargs | 0.001

### PMDASMClassLoaderTest

| testLoadClassWithImportOnDemand | 0.001
| testClassWithImportInnerOnDemand | 0.002
| testCachingOfNotFoundClasses | 0.001

### DoublePropertyTest

| testConstructors | 0.003
| testAsDelimitedString | 0.004
| testValueFrom | 0.003
| testErrorFor | 0.001
| testErrorForBad | 0.002
| testType | 0.001

### SimpleNodeTest

| testMethodDiffLines | 0.003
| testMethodSameLine | 0.002
| testNoLookahead | 0.002
| testHasExplicitExtends | 0.001
| testNoExplicitExtends | 0
| testHasExplicitImplements | 0.001
| testNoExplicitImplements | 0.002
| testColumnsOnQualifiedName | 0.001
| testLineNumbersForNameSplitOverTwoLines | 0.002
| testLineNumbersAreSetOnAllSiblings | 0.006
| testFindDescendantsOfType | 0
| testFindDescendantsOfTypeMultiple | 0
| testFindDescendantsOfTypeRecurse | 0
| testGetFirstChild | 0.001
| testGetFirstChildNested | 0.002
| testGetFirstChildNestedDeeper | 0.001
| testParentMethods | 0.001
| testContainsNoInnerWithAnonInner | 0.003
| testContainsChildOfType | 0.002
| testXPathNodeSelect | 0.002
| testUserData | 0.001

### DAAPathFinderTest

| testTwoUpdateDefs | 0.168

### FortranTokenizerTest

| tokenizeTest | 0.007

### CPDTest

| testFileSectionWithBrokenSymlinks | 0.017
| testFileAddedAsSymlinkAndReal | 0.004
| testFileAddedWithRelativePath | 0.003

### ParserOptionsTest

| testEqualsHashcode | 0
| testSuppressMarker | 0.001

### AcceptanceTest

| testbook | 0.004
| testLabelledBreakLockup | 0.009
| test_1 | 0.004
| test_2 | 0.008
| test_3 | 0.008
| test_4 | 0.006
| test_6 | 0.007
| test_7 | 0.008
| test_8 | 0.005
| test_9 | 0.005
| test_10 | 0.015
| test_11 | 0.005
| test_12 | 0.006
| test_13 | 0.006
| test_14 | 0.009
| test_15 | 0.006
| test_16 | 0.009
| test_17 | 0.009
| test_18 | 0.012
| test_19 | 0.007
| test_20 | 0.008
| test_21 | 0.009
| test_22 | 0.008
| test_23 | 0.006
| test_24 | 0.01
| test_25 | 0.008
| test_26 | 0.008
| test_27 | 0.007
| test_28 | 0.009
| test_29 | 0.006
| test_30 | 0.007

### AndroidRulesTest

| testAll | 0.02

### ASTLiteralTest

| testIsNotStringLiteral | 0.01
| testIsIntIntLiteral | 0.003
| testIsIntLongLiteral | 0.001
| testIsFloatFloatLiteral | 0.001
| testIsFloatDoubleLiteral | 0.001
| testIsCharLiteral | 0.002
| testIsStringLiteral | 0.001

### BasicRulesTest

| testAll | 0.616

### RuleSetFactoryTest

| testMultipleRules | 0.003
| testSingleRuleWithPriority | 0.003
| testProps | 0.004
| testXPath | 0.004
| testFacadesOffByDefault | 0.003
| testDFAFlag | 0.004
| testExternalReferenceOverride | 0.004
| testReferenceInternalToInternal | 0.004
| testReferenceInternalToInternalChain | 0.006
| testReferenceInternalToExternal | 0.005
| testReferenceInternalToExternalChain | 0.007
| testReferencePriority | 0.02
| testOverrideMessage | 0.002
| testOverrideMessageOneElem | 0.003
| testIncorrectExternalRef | 0.002
| testSetPriority | 0.002
| testLanguage | 0.001
| testIncorrectLanguage | 0.002
| testMinimumLanugageVersion | 0.002
| testIncorrectMinimumLanugageVersion | 0.001
| testMaximumLanugageVersion | 0.002
| testIncorrectMaximumLanugageVersion | 0.002
| testInvertedMinimumMaximumLanugageVersions | 0.002
| testDirectDeprecatedRule | 0.002
| testReferenceToDeprecatedRule | 0.004
| testRuleSetReferenceWithDeprecatedRule | 0.025
| testExternalReferences | 0.005
| testIncludeExcludePatterns | 0.003
| testAllPMDBuiltInRulesMeetConventions | 0.085
| testXmlSchema | 0.55
| testDtd | 0.431
| testReadWriteRoundTrip | 1.999
| testRuleSetFileName | 0.027
| testNoRuleSetFileName | 0.002
| testRefs | 0.013
| testExtendedReferences | 0.1
| testRuleSetNotFound | 0.001
| testCreateEmptyRuleSet | 0.011
| testSingleRule | 0.002

### PMDTaskTest

| testClasspath | 0.692
| testNoFormattersValidation | 0.639
| testFormatterWithNoToFileAttribute | 0.318
| testNoRuleSets | 0.155
| testNestedRuleset | 0.533
| testFormatterWithProperties | 0.303
| testAbstractNames | 0.253
| testAbstractNamesInNestedRuleset | 0.37
| testCommaInRulesetfiles | 0.222
| testRelativeRulesets | 0.156
| testRelativeRulesetsInRulesetfiles | 0.18
| testBasic | 0.065
| testInvalidLanguageVersion | 0.035
| testExplicitRuleInRuleSet | 0.083
| testEcmascript | 0.08
| testXML | 0.034

### AvoidDuplicateLiteralsRuleTest

| testAll | 0.042
| testStringParserEmptyString | 0.001
| testStringParserSimple | 0.001
| testStringParserEscapedChar | 0
| testStringParserEscapedEscapedChar | 0

### ASTBooleanLiteralTest

| testFalse | 0.002
| testTrue | 0.002

### YAHTMLRendererTest

| testError | 0.011
| testNullPassedIn | 0.002
| testRenderer | 0.004
| testRendererEmpty | 0.002
| testRendererMultiple | 0.003

### MetricTest

| testGetMetricName | 0.001
| testGetCount | 0
| testGetTotal | 0
| testGetLowValue | 0
| testGetHighValue | 0.001
| testGetAverage | 0
| testGetStandardDeviation | 0

### UnnecessaryRulesTest

| testAll | 0.261

### CSVRendererTest

| testError | 0.002
| testNullPassedIn | 0
| testRenderer | 0.001
| testRendererEmpty | 0.002
| testRendererMultiple | 0.002

### AnyTokenizerTest

| testMultiLineMacros | 0

### VBHTMLRendererTest

| testError | 0.001
| testNullPassedIn | 0.002
| testRenderer | 0.001
| testRendererEmpty | 0
| testRendererMultiple | 0.001

### EcmascriptTokenizerTest

| test1 | 0.001
| test2 | 0.001

### XMLRendererTest

| testWithNoDuplication | 0.005
| testWithOneDuplication | 0.021
| testRenderWithMultipleMatch | 0.004
| testRendererEncodedPath | 0.003

### StrictExceptionRulesTest

| testAll | 0.216

### EnumeratedPropertyTest

| testConstructors | 0.002
| testAsDelimitedString | 0.016
| testValueFrom | 0
| testErrorFor | 0
| testErrorForBad | 0.006
| testType | 0.002

### XMLRendererTest

| testSingleReport | 0.003
| testDoubleReport | 0.003
| testTwoFiles | 0.015
| testEmptyReport | 0.002
| testErrorReport | 0.002

### BasicRulesTest

| testAll | 3.348

### UncommentedEmptyMethodRuleTest

| testAll | 0.04

### ASTLocalVariableDeclarationTest

| testSingleDimArray | 0.001
| testMultDimArray | 0.001
| testMultDimArraySplitBraces | 0.001

### VariableUsageFinderFunctionTest

| testLookingForUsed | 0.001

### UnusedCodeRulesTest

| testAll | 0.218

### MatchesFunctionTest

| testNoMatch | 0.01
| testMatch | 0

### BooleanPropertyTest

| testErrorForBad | 0.001
| testConstructors | 0.002
| testAsDelimitedString | 0.002
| testValueFrom | 0.001
| testErrorFor | 0.001
| testType | 0.002

### BracesRulesTest

| testAll | 0.215

### MigratingRulesTest

| testAll | 0.251

### ContinuationReaderTest

| testHappyPath | 0.002

### SummaryHTMLRendererTest

| testError | 0.003
| testNullPassedIn | 0.001
| testRenderer | 0.003
| testRendererEmpty | 0.001
| testRendererMultiple | 0.002

### VariableAccessTest

| testGetVariableName | 0

### CyclomaticComplexityTest

| testConstructor | 0.004
| testNastyComplicatedMethod | 0.006
| testLessComplicatedThanReportLevel | 0.005
| testRemainingTestCases | 0.029
| testOneMethod | 0.004

### SourceCodeTest

| testSimple | 0

### ReportTest

| testBasic | 0.001
| testMetric0 | 0.001
| testMetric1 | 0
| testExclusionsInReportWithRuleViolationSuppressRegex | 0.002
| testExclusionsInReportWithRuleViolationSuppressXPath | 0.001
| testExclusionsInReportWithAnnotations | 0.001
| testExclusionsInReportWithNOPMD | 0.01
| testSortedReport_File | 0.001
| testSortedReport_Line | 0.001
| testListener | 0
| testSummary | 0.001
| testTreeIterator | 0

### MatchAlgorithmTest

| testSimple | 0.001
| testIgnore | 0

### MethodScopeTest

| testMethodName | 0
| testGenerics | 0.001
| testMethodParameterOccurrenceRecorded | 0.001

### FinalizersRulesTest

| testAll | 0.061

### DataFlowNodeTest

| testAddPathToChild | 0.003
| testRemovePathToChild | 0.001
| testRemovePathWithNonChild | 0.001
| testReverseParentPathsTo | 0.005
| testSetType | 0

### JavabeansRulesTest

| testAll | 0.119

### ViolationNodeTest

| testEqualsNodeWithTwoDifferentViolationsDifferentVariableName | 0.287
| testEqualsNodeWithTwoDifferentViolationsDifferentFilename | 0.002
| testEqualsNodeWithTwoDifferentViolationsDifferentBeginLine | 0.002
| testEqualsNodeWithTwoDifferentViolationsDifferentEndLine | 0.002
| testEqualsNodeWithTwoDifferentViolationsDifferentBeginColumn | 0.004
| testEqualsNodeWithTwoDifferentViolationsDifferentEndColumn | 0.003
| testEqualsNodeWithTwoEqualViolations | 0.003

### AttributeAxisIteratorTest

| testAttributeAxisIterator | 0.004

### IntegerPropertyTest

| testErrorForBad | 0.001
| testConstructors | 0.004
| testAsDelimitedString | 0.003
| testValueFrom | 0.002
| testErrorFor | 0.002
| testType | 0.011

### StatementAndBraceFinderTest

| testStatementExpressionParentChildLinks | 0.001
| testVariableDeclaratorParentChildLinks | 0.002
| testIfStmtHasCorrectTypes | 0.003
| testWhileStmtHasCorrectTypes | 0.002
| testForStmtHasCorrectTypes | 0.003
| testOnlyWorksForMethodsAndConstructors | 0.001

### CloneMethodMustImplementCloneableTest

| testAll | 0.001

### TextRendererTest

| testError | 0.001
| testNullPassedIn | 0.001
| testRenderer | 0.002
| testRendererEmpty | 0.001
| testRendererMultiple | 0.001

### RuleSetReferenceIdTest

| testOneSimpleRuleSet | 0.01
| testMultipleSimpleRuleSet | 0.001
| testOneReleaseRuleSet | 0.001
| testOneFullRuleSet | 0.001
| testOneFullRuleSetURL | 0.002
| testMultipleFullRuleSet | 0.002
| testMixRuleSet | 0.001
| testUnknownRuleSet | 0.001
| testUnknownAndSimpleRuleSet | 0.001
| testSimpleRuleSetAndRule | 0
| testFullRuleSetAndRule | 0.001
| testFullRuleSetURLAndRule | 0.001
| testInternalRuleSetAndRule | 0.001
| testCommaInSingleId | 0.001
| testInternalWithInternal | 0.001
| testExternalWithExternal | 0.001
| testExternalWithInternal | 0.001
| testInteralWithExternal | 0.001
| testEmptyRuleSet | 0
| testInternalWithExternalRuleSet | 0.001

### ControversialRulesTest

| testAll | 0.882

### UncommentedEmptyConstructorRuleTest

| testDefault | 0.076
| testIgnoredConstructorInvocation | 0.014
| testAll | 0.006

### CouplingRulesTest

| testAll | 0.109

### J2EERulesTest

| testAll | 0.306

### OpenTagRegisterTest

| testSimpleNesting | 0.001
| doubleNesting | 0
| unopenedTags | 0.001
| interleavedTags | 0
| openedIsolatedTag | 0.001

### MethodDeclTest

| testPublic | 0.001
| testProtected | 0.001
| testPrivate | 0
| testFinal | 0
| testSynchronized | 0
| testNative | 0
| testAbstract | 0.001
| testStrict | 0.001

### ASTBlockStatementTest

| testIsAllocation | 0.001
| testIsAllocation2 | 0.001

### RuleReferenceTest

| testNotOverride | 0.001
| testRuleSetReference | 0
| testOverride | 0

### ParserCornersTest

| testCastLookaheadProblem | 0.001
| testGenericsProblem | 0.001
| testParsersCases | 0.008
| testGetFirstASTNameImageNull | 0.001

### ASTVariableDeclaratorIdTest

| testTypeNameNode | 0.001
| testIsExceptionBlockParameter | 0
| testAnnotations | 0.001

### ASTFieldDeclarationTest

| testGetVariableName | 0
| testIsArray | 0.003
| testIsSyntacticallyPublic | 0.001
| testWithEnum | 0.001
| testMultiDimensionalArray | 0.001

### XPathRulesTest

| testAll | 0.052

### LooseCouplingTest

| testAll | 0.038

### ASTSwitchLabelTest

| testDefaultOff | 0.002
| testDefaultSet | 0.002

### RuleViolationComparatorTest

| testComparator | 0.001

### ASTPackageDeclarationTest

| testPackageName | 0.014

### PapariTextRendererTest

| testError | 0.002
| testNullPassedIn | 0.001
| testRenderer | 0.003
| testRendererEmpty | 0.001
| testRendererMultiple | 0.003

### RegexStringFilterTest

| testFilterAbsoluteWithExtension | 0
| testFilterAbsoluteWithoutExtension | 0
| testFilterRelativeWithExtension | 0
| testFilterRelativeWithoutExtension | 0
| testEndsWith | 0.001

### ClassTypeResolverTest

| testClassNameExists | 0.001
| testUnaryLogicalOperators | 0.006
| testBinaryLogicalOperators | 0
| testUnaryNumericOperators | 0.003
| testBinaryNumericOperators | 0.002
| testAssignmentOperators | 0.003
| testLiterals | 0.002
| acceptanceTest | 0.006
| testExtraTopLevelClass | 0
| testInnerClass | 0
| testAnonymousInnerClass | 0.002
| testUnaryNumericPromotion | 0.005
| testBinaryNumericPromotion | 0.006
| testBinaryStringPromotion | 0.004

### StringUtilTest

| testReplaceWithMultipleChars | 0
| testReplaceStringWithString | 0
| testReplaceStringWithString2 | 0.007
| testReplaceWithNull | 0
| testUTF8NotSupported | 0
| testUTF8Supported | 0
| testReplaceWithOneChar | 0

### DesignRulesTest

| testAll | 4.752

### SimpleAggregatorTst)

| xml.java-design.UseVarargs:method\u002C do not varargs as the signature is dictated by an interface\n\/\/ TODO Once this is implemented\u002C perhaps it should be optional? The compiler will technically let you use varargs. + - [ Detail ] | 4.752
| skipped |

### ApplierTest

| testSimple | 0

### JavaTokensTokenizerTest

| test1 | 0
| test2 | 0.001
| testCommentsIgnored | 0.145
| testDiscardSemicolons | 0
| testDiscardImports | 0.001
| testDiscardPkgStmts | 0
| testDiscardSimpleOneLineAnnotation | 0.001
| testIgnoreComments | 0.001
| testDiscardOneLineAnnotationWithParams | 0
| testIgnoreBetweenSpecialAnnotation | 0.008
| testIgnoreBetweenSpecialAnnotationAndIgnoreAnnotations | 0

### RubyTokenizerTest

| tokenizeTest | 0

### EmptyRulesTest

| testAll | 0.371

### LoggingJavaRulesTest

| testAll | 0.042

### EmacsRendererTest

| testError | 0.01
| testNullPassedIn | 0.001
| testRenderer | 0.001
| testRendererEmpty | 0.001
| testRendererMultiple | 0.001

### MethodPropertyTest

| testAsStringOn | 0.022
| testAsMethodOn | 0.002
| testConstructors | 0.002
| testAsDelimitedString | 0.004
| testValueFrom | 0.004
| testErrorFor | 0.001
| testErrorForBad | 0.002
| testType | 0.002

### ConfigurationTest

| testClassLoader | 0.001
| testSuppressMarker | 0
| testThreads | 0.001
| testLanguageVersionDiscoverer | 0.001
| testRuleSets | 0
| testMinimumPriority | 0.001
| testSourceEncoding | 0.001
| testInputPaths | 0
| testReportShortNames | 0
| testReportFormat | 0.001
| testCreateRenderer | 0.001
| testReportFile | 0
| testShowSuppressedViolations | 0.005
| testReportProperties | 0
| testDebug | 0
| testStressTest | 0
| testBenchmark | 0

### XSLTRendererTest

| testDefaultStylesheet | 0.896

### ASTAnnotationTest

| testAnnotationSucceedsWithDefaultMode | 0.001
| testAnnotationFailsWithJDK14 | 0
| testAnnotationSucceedsWithJDK15 | 0.001

### AttributeAxisIteratorTest

| testRemove | 0.007

### CPPTokenizerTest

| testDollarSignInIdentifier | 0.015
| testDollarSignStartingIdentifier | 0.002
| testWideCharacters | 0.001
| testContinuation_IntraToken | 0.001
| testContinuation_InterToken | 0.001
| testMultiLineMacros | 0

### AbstractRuleTest

| testEquals1 | 0.01
| testEquals2 | 0.001
| testEquals3 | 0.001
| testEquals4 | 0.001
| testEquals5 | 0.001
| testEquals6 | 0
| testEquals7 | 0
| testEquals8 | 0.001
| testEquals9 | 0.005
| testEquals10 | 0.001
| testCreateRV | 0.001
| testCreateRV2 | 0.001
| testRuleWithVariableInMessage | 0.002
| testRuleSuppress | 0.003

### ASTThrowStatementTest

| testGetFirstASTNameImageNew | 0.002
| testGetFirstASTNameImageNull | 0.001

### CharacterPropertyTest

| testErrorForBad | 0.001
| testConstructors | 0.001
| testAsDelimitedString | 0.001
| testValueFrom | 0.001
| testErrorFor | 0.002
| testType | 0.001

### MatchTest

| testSimple | 0
| testCompareTo | 0

### TooManyHttpFilterTest

| testDefault | 0
| testAll | 0.001

### ConfusingTernaryRuleTest

| testAll | 0.041

### SourceFileScopeTest

| testPackageIsEmptyString | 0.001
| testPackageNameFound | 0.001
| testNestedClasses | 0
| testClassDeclAppears | 0

### ASTInitializerTest

| testDontCrashOnBlockStatement | 0.001

### MyTestCase

| net.sourceforge.pmd.lang.java.rule.typeresolution.xml.MyTestCase + - [ Detail ] | 0.002
| skipped |

### JunitRulesTest

| testAll | 0.334

### MethodNameDeclarationTest

| testEquality | 0.001

### OptimizationsRulesTest

| testAll | 0.494

### SuppressWarningsTest

| testClassLevelSuppression | 0
| testInheritedSuppression | 0
| testMethodLevelSuppression | 0
| testConstructorLevelSuppression | 0
| testFieldLevelSuppression | 0
| testParameterLevelSuppression | 0
| testLocalVariableLevelSuppression | 0.001
| testSpecificSuppression | 0.003
| testSpecificSuppressionValue1 | 0.003
| testSpecificSuppressionValue2 | 0.003
| testSpecificSuppressionValue3 | 0.003
| testSpecificSuppressionMulitpleValues1 | 0.002
| testSpecificSuppressionMulitpleValues2 | 0.002
| testNoSuppressionBlank | 0.008
| testNoSuppressionSomethingElseS | 0.002
| testSuppressAll | 0.001
| testSpecificSuppressionAtTopLevel | 0.002

### EcmascriptParserTest

| testLineNumbers | 0.202

### ReadableDurationTest

| test[0] | 0
| test[1] | 0
| test[2] | 0
| test[3] | 0.001

### LanguageVersionTest

| testGetLanguageVersionForTerseName[0] | 0.001
| testFindVersionsForLanguageTerseName[0] | 0.001
| testGetLanguageVersionForTerseName[1] | 0
| testFindVersionsForLanguageTerseName[1] | 0.001
| testGetLanguageVersionForTerseName[2] | 0.001
| testFindVersionsForLanguageTerseName[2] | 0.001
| testGetLanguageVersionForTerseName[3] | 0.001
| testFindVersionsForLanguageTerseName[3] | 0.001
| testGetLanguageVersionForTerseName[4] | 0.001
| testFindVersionsForLanguageTerseName[4] | 0
| testGetLanguageVersionForTerseName[5] | 0.001
| testFindVersionsForLanguageTerseName[5] | 0.001
| testGetLanguageVersionForTerseName[6] | 0.002
| testFindVersionsForLanguageTerseName[6] | 0.001
| testGetLanguageVersionForTerseName[7] | 0.001
| testFindVersionsForLanguageTerseName[7] | 0
| testGetLanguageVersionForTerseName[8] | 0
| testFindVersionsForLanguageTerseName[8] | 0.001
| testGetLanguageVersionForTerseName[9] | 0
| testFindVersionsForLanguageTerseName[9] | 0
| testGetLanguageVersionForTerseName[10] | 0
| testFindVersionsForLanguageTerseName[10] | 0
| testGetLanguageVersionForTerseName[11] | 0
| testFindVersionsForLanguageTerseName[11] | 0.001
| testGetLanguageVersionForTerseName[12] | 0.001
| testFindVersionsForLanguageTerseName[12] | 0.001
| testGetLanguageVersionForTerseName[13] | 0.001
| testFindVersionsForLanguageTerseName[13] | 0.001

### CommentRulesTest

| testAll | 0.04

### DateTimeUtilTest

| testConversions | 0

### AccessNodeTest

| testModifiersOnClassDecl | 0.002
| testStatic | 0.001
| testPublic | 0.001
| testProtected | 0
| testPrivate | 0
| testFinal | 0
| testSynchronized | 0.001
| testVolatile | 0.002
| testTransient | 0
| testNative | 0
| testAbstract | 0.001
| testStrict | 0.001
| testPackagePrivate | 0.001

### TokenEntryTest

| testSimple | 0

### FileSelectorTest

| testWantedFile | 0
| testUnwantedFile | 0
| testUnwantedJavaFile | 0

### AbstractDomXmlRuleTest

| dtdIsNotLookedUp | 0.088
| xsdIsNotLookedUp | 0.004
| testVisit | 0.091

### HTMLRendererTest

| testError | 0.001
| testNullPassedIn | 0
| testRenderer | 0.002
| testRendererEmpty | 0
| testRendererMultiple | 0.001

### CompoundListTest

| testHappyPath | 0.001
| testHappyPathRemove | 0
| testEmpty | 0
| testEmptyBadNext | 0.001
| testEmptyBadRemove | 0

### SimpleAggregatorTst

| xml.java-unnecessary.UselessOverridingMethod:False +: Overriding method merely calls super (see bug 1415525) + - [ Detail ] | 1.014
| skipped |

### UnnecessaryRulesTest

| testAll | 1.024

### TypePropertyTest

| testConstructors | 0.015
| testAsDelimitedString | 0
| testValueFrom | 0
| testErrorFor | 0
| testErrorForBad | 0.006
| testType | 0

### FloatPropertyTest

| testConstructors | 0.004
| testAsDelimitedString | 0.006
| testValueFrom | 0.002
| testErrorFor | 0.002
| testErrorForBad | 0.001
| testType | 0.009

### ImportsRulesTest

| testAll | 0.179

### AcceptanceTest

| testInitializer | 0.001
| testCatchBlocks | 0.001
| testEq | 0.001
| testClashingSymbols | 0.001
| testFieldFinder | 0.001
| testDemo | 0.001
| testEnum | 0.001
| testInnerOuterClass | 0.001

### ASTMethodDeclarationTest

| testGetVariableName | 0.001

### LanguageFactoryTest

| testSimple | 0.003

### CodesizeRulesTest

| testAll | 0.232

### BasicRulesTest

| testAll | 0.59

### GeneralFiddlingTest

| test1 | 0.02

### JDKVersionTest

| testGenericINAnnotation | 0.002
| testGenericReturnType | 0.01
| testMultipleGenerics | 0.003
| testAnnotatedParams | 0.003
| testAnnotatedLocals | 0.002
| testAssertAsIdentifierSucceedsWith1_3_test2 | 0.001
| testBinaryAndUnderscoresInNumericalLiterals | 0.004
| testStringInSwitch | 0.003
| testGenericDiamond | 0.001
| testTryWithResources | 0.001
| testTryWithResourcesSemi | 0.002
| testTryWithResourcesMulti | 0.003
| testTryWithResourcesWithAnnotations | 0.003
| testMulticatch | 0.002
| testMulticatchWithAnnotations | 0.003
| testGenericsInMethodCall | 0.002
| testEnumAsKeywordShouldFailWith14 | 0.001
| testEnumAsIdentifierShouldPassWith14 | 0.001
| testEnumAsKeywordShouldPassWith15 | 0.002
| testEnumAsIdentifierShouldFailWith15 | 0.001
| testAssertAsKeywordVariantsSucceedWith1_4 | 0.002
| testAssertAsVariableDeclIdentifierFailsWith1_4 | 0.002
| testAssertAsMethodNameIdentifierFailsWith1_4 | 0.001
| testAssertAsIdentifierSucceedsWith1_3 | 0.003
| testAssertAsKeywordFailsWith1_3 | 0.004
| testVarargsShouldPassWith15 | 0.002
| testVarargsShouldFailWith14 | 0.001
| testJDK15ForLoopSyntaxShouldPassWith15 | 0.002
| testJDK15ForLoopSyntaxWithModifiers | 0.002
| testJDK15ForLoopShouldFailWith14 | 0.002
| testJDK15GenericsSyntaxShouldPassWith15 | 0.001
| testVariousParserBugs | 0.002
| testNestedClassInMethodBug | 0.003

### RegexpAcceptanceTest

| testSimple | 0.001
| testAll | 0

### ASTAssignmentOperatorTest

| testSimpleAssignmentRecognized | 0.002
| testCompoundAssignmentPlusRecognized | 0.001
| testCompoundAssignmentMultRecognized | 0.001

### SimpleAggregatorTst

| xml.java-sunsecure.MethodReturnsInternalArray:3220206: False positive using a ternary operator + - [ Detail ] | 0.135
| skipped |

### SunSecureRulesTest

| testAll | 0.135

### StringPropertyTest

| testConstructors | 0.001
| testAsDelimitedString | 0
| testValueFrom | 0
| testErrorFor | 0
| testErrorForBad | 0.002
| testType | 0.003

### TextPadRendererTest

| testError | 0.001
| testNullPassedIn | 0.001
| testRenderer | 0.001
| testRendererEmpty | 0
| testRendererMultiple | 0.001

### ASTImportDeclarationTest

| testImportOnDemand | 0.002
| testGetImportedNameNode | 0.001
| testStaticImport | 0.001
| testStaticImportFailsWithJDK14 | 0.001

### PMDCoverageTest

| testPmdOptions | 4.374
| testResourceFileCommands | 28.047

### CLITest

| minimalArgs | 0.053
| usingDebug | 0.055
| changeJavaVersion | 0.06
| useEcmaScript | 0.01

### BracesRulesTest

| testAll | 0.156

### RuleContextTest

| testReport | 0
| testSourceCodeFilename | 0
| testSourceCodeFile | 0
| testAttributes | 0
| testSharedAttributes | 0

### ConstructorCallsOverridableMethodTest

| testAll | 0.285

### SourceCodePositionerTest

| testLineNumberFromOffset | 0

### StructureTest

| testAddResultsinDFANodeContainingAddedNode | 0.001

### ScopeCreationVisitorTest

| testScopesAreCreated | 0.001

### TypeSetTest

| testASTCompilationUnitPackage | 0
| testAddImport | 0.001
| testFindClassImplicitImport | 0.002
| testFindClassSamePackage | 0.001
| testFindClassExplicitImport | 0.001
| testFindClassImportOnDemand | 0.002
| testFindClassPrimitive | 0
| testFindClassVoid | 0.002
| testFindFullyQualified | 0.002
| testPrimitiveTypeResolver | 0.001
| testVoidTypeResolver | 0.001
| testExplicitImportResolver | 0.001
| testImplicitImportResolverPass | 0
| testImplicitImportResolverPassFail | 0.001
| testCurrentPackageResolverPass | 0.002
| testImportOnDemandResolverPass | 0
| importOnDemandResolverFail1 | 0.001
| importOnDemandResolverFail2 | 0.001

### JspPageStyleTest

| testDirective | 0.034
| testComment | 0.003
| testExpressionInAttribute | 0.006
| testElExpression | 0.003
| testElExpressionInAttribute | 0.002
| testJsfValueBinding | 0.003
| testDeclaration | 0.003
| testScriptlet | 0.006
| testExpression | 0.006

### LoggingJakartaCommonsRulesTest

| testAll | 0.066

### SignatureDeclareThrowsExceptionTest

| testAll | 0.033

### DocumentNavigatorTest

| testXPath | 0.003
| testXPath2 | 0.004
| testChildAxisIterator | 0.002
| testParentAxisIterator | 0.013
| testParentAxisIterator2 | 0.002
| testDescendantAxisIterator | 0.009
| testDescendantAxisIterator2 | 0.003
| testFollowingSiblingAxisIterator | 0.003
| testFollowingSiblingAxisIterator2 | 0.003
| testPrecedingSiblingAxisIterator | 0.004
| testPrecedingSiblingAxisIterator2 | 0.003

### LanguageVersionDiscovererTest

| testJspFile | 0
| testJavaFileUsingDefaults | 0
| testJavaFileUsing15 | 0.008

### JspDocStyleTest

| testComment | 0.004
| testSimplestJsp | 0.005
| testElementAttributeAndNamespace | 0.005
| testAttributeValueContainingHash | 0.008
| testCData | 0.008
| testDoctype | 0.009
| testHtmlScript | 0.005
| testImportHtmlScript | 0.004
| testHtmlScriptWithAttribute | 0.004
| testComplexHtmlScript | 0.008
| testInlineCss | 0.002
| testTextInTag | 0.003
| noSpacesBetweenTags | 0.004
| unclosedTagsWithDollar | 0.003
| unclosedTagsWithELWithin | 0.006
| mixedExpressions | 0.004
| unclosedTagsWithJspExpressionWithin | 0.003
| textAfterOpenAndClosedTag | 0.004
| quoteEL | 0.003
| quoteExpression | 0.005
| noQuoteAttrValue | 0.002
| noQuoteAttrWithJspEL | 0.003
| noQuoteAttrWithJspExpression | 0.003
| noQuoteAttrEmpty | 0.005
| noQuoteAttrCrLf | 0.004
| noQuoteAttrTab | 0.003
| noQuoteAttrWithMalformedJspExpression | 0.004
| unclosedTag | 0.003
| unclosedTagAndNoQuotesForAttribute | 0.002
| unclosedTagMultipleLevels | 0.003
| nestedEmptyTags | 0.003
| nestedMultipleTags | 0.002
| unclosedParentTagClosedBeforeChild | 0.003
| unmatchedTagDoesNotInfluenceStructure | 0.002
| unclosedStartTagWithUnmatchedCloseOfDifferentTag | 0.003

### XPathJspRuleTest

| testExpressionMatching | 0.132

### ClassDeclTest

| testPublicFinal | 0.001
| testPublic | 0.001
| testFinal | 0.001
| testAbstract | 0.001
| testStrict | 0

### ExcludeLinesTest

| testAcceptance | 0.007
| testAlternateMarker | 0.005

### ASTPrimarySuffixTest

| testArrayDereference | 0.001
| testArguments | 0.002

### XPathRuleTest

| testPluginname | 0
| testVariables | 0.001

### IDEAJRendererTest

| testError | 0.002
| testNullPassedIn | 0.001
| testRenderer | 0.002
| testRendererEmpty | 0.001
| testRendererMultiple | 0.001

### RuleSetTest

| testEquals1 | 0.002
| testEquals2 | 0.001
| testEquals3 | 0.002
| testEquals4 | 0.002
| testEquals5 | 0.002
| testEquals6 | 0.002
| testAddIncludePattern | 0.002
| testAddIncludePatterns | 0.001
| testSetIncludePatterns | 0.001
| testIncludeExcludeApplies | 0.002
| testIncludeExcludeMultipleRuleSetWithRuleChainApplies | 0.009
| testNoDFA | 0.002
| testIncludesRuleWithDFA | 0.002
| testAccessors | 0.002
| testGetRuleByName | 0.002
| testGetRuleByName2 | 0.002
| testRuleList | 0.001
| testAddRuleSet | 0.002
| testAddRuleSetByReferenceBad | 0.002
| testAddRuleSetByReferenceAllRule | 0.003
| testAddRuleSetByReferenceSingleRule | 0.001
| testApply0Rules | 0.001
| testLanguageApplies | 0.001
| testAddExcludePattern | 0.002
| testAddExcludePatterns | 0.001
| testSetExcludePatterns | 0.001

### SimpleAggregatorTst

| xml.java-strings.ConsecutiveLiteralAppends:43\u002C Using variable char array + - [ Detail ] | 1.312
| skipped |

### StringsRulesTest

| testAll | 1.312

### NameOccurrencesTest

| testIsSelfAssignment | 0.002
| testThis | 0.001
| testNameLinkage | 0.001
| testSimpleVariableOccurrence | 0
| testQualifiedOccurrence | 0
| testEnumStaticUsage | 0.001
| testSuper | 0.001

### PropertyAccessorTest

| testIntegers | 0.012
| testBooleans | 0.002
| testFloats + - [ Detail ] | 0.004
| skipped |
| testStrings | 0.004
| testAll | 0.002

### XmlParserOptionsTest

| testEqualsHashcode | 0.005
| testDefaults | 0.001
| testConstructor | 0.001
| testSetters | 0.001

### NamingRulesTest

| testAll | 0.323

### GlobalScopeTest

| testClassDeclAppears | 0
| testEnums | 0

### ImageFinderFunctionTest

| testSingleImage | 0.001
| testSeveralImages | 0

### ClassScopeTest

| testEnumsClassScope | 0.008
| testAnonymousInnerClassName | 0.001
| testContains | 0
| testCantContainsSuperToString | 0
| testContainsStaticVariablePrefixedWithClassName | 0
| testClassName | 0.001
| testMethodDeclarationRecorded | 0
| testTwoMethodsSameNameDiffArgs | 0
| testOneParam | 0.001
| testTwoParams | 0.001
| testNoParams | 0
| testOneParamVararg | 0.001
| testTwoParamsVararg | 0
| testNestedClassDeclFound | 0
| testbuz | 0.001
| testMethodUsageSeen | 0.001
| testMethodUsageSeenWithThis | 0.001
| testMethodUsageSeen2 | 0.001
| testNestedClassFieldAndParameter | 0.002

### LocalScopeTest

| testNameWithThisOrSuperIsNotFlaggedAsUnused | 0.001
| testNameWithSuperIsNotFlaggedAsUnused | 0.001
| testLocalVariableDeclarationFound | 0.002
| testQualifiedNameOccurrence | 0.001
| testPostfixUsageIsRecorded | 0.001
| testLocalVariableTypesAreRecorded | 0.002
| testMethodArgumentTypesAreRecorded | 0.004
| testgetEnclosingMethodScope | 0

### EcmascriptParserOptionsTest

| testEqualsHashcode | 0.005
| testDefaults | 0
| testConstructor | 0
| testSetters | 0.001

### BasicRulesTest

| testAll | 0.082

### UnusedImportsTest

| testAll | 0.048

### CloneRulesTest

| testAll | 0.245

### NPathComplexityTest

| testViolationMessage | 0.026
| testReturnValueComplexity | 0.009

### VariableNameDeclarationTest

| testConstructor | 0.001
| testExceptionBlkParam | 0.001
| testIsArray | 0.001
| testPrimitiveType | 0.001
| testArrayIsReferenceType | 0.001
| testPrimitiveTypeImage | 0.001
| testRefTypeImage | 0.001
| testParamTypeImage | 0

### AttributeTest

| testConstructor | 0.008

### FieldDeclTest

| testStatic | 0.001
| testPublic | 0.001
| testProtected | 0.001
| testPrivate | 0.002
| testFinal | 0.001
| testVolatile | 0
| testTransient | 0.001

### TypeMapTest

| testAddClassOfQ | 0
| testContainsClassOfQ | 0.001
| testContainsString | 0
| testTypeFor | 0.001
| testSize | 0

## Failure Details

[Summary] [Package List] [Test Cases]

| xml.java-design.UseVarargs:method\u002C do not varargs as the signature is dictated by an interface\n\/\/ TODO Once this is implemented\u002C perhaps it should be optional? The compiler will technically let you use varargs.
| skipped: skipped
| net.sourceforge.pmd.lang.java.rule.typeresolution.xml.MyTestCase
| skipped: skipped
| xml.java-unnecessary.UselessOverridingMethod:False +: Overriding method merely calls super (see bug 1415525)
| skipped: skipped
| xml.java-sunsecure.MethodReturnsInternalArray:3220206: False positive using a ternary operator
| skipped: skipped
| xml.java-strings.ConsecutiveLiteralAppends:43\u002C Using variable char array
| skipped: skipped
| testFloats
| skipped: skipped