It's like being the parent of a teenager. "Dad!! Guess what happened today at school? It was so cool, I got an A+ on my spelling test!!" No effort on your part to ask, he just gushes unprompted, You would rather he came home with the enthusiasm of a kindergartener eager to tell you about his day as soon as he gets home. That's what continuous integration can do for you. So, recalling the computer adage, Garbage In, Garbage Out, we have carefully picked a select few reports that we feel give us a good measure of quality and integrated them into our build so that the feedback from CI is meaningful. Although several CI engines (we currently use Hudson) do have plugins to generate quality reports such as unit test results and test coverage, we feel it is important that developers have full access to run all the same reports that CI will run. Since we run maven, it is easy to plugin the reports of interest into the section of the pom. So which reports do we run? Here's the rundown: That keeps the report configurations in source control along with the code. Validates source code against coding standards and reports any violations. It's possible for an individual project to override the custom ruleset, but we don't encourage that. Performs design time analysis of the source code against a standard ruleset. #Smartsvn checkout localhost repository code# We customized the ruleset, packaged it in a versioned jar and deployed it to our maven repository. Additionally, we forced it to run as part of every build in the validate phase, and configured it to fail the build if violations are found. You want to see the results of your tests. Shows branch and line coverage for your source files. "Metrics are meant to help you think, not to do the thinking for you." I think the key to using this metric is to not to set a percentage that the project team must meet, but to be smart about interpreting the trends. Creates the API documentation for your project. Aggregates maven multiproject build reports into a single report page. In addition, make full use of Maven's pom to declare all the sections that feed the default generated site, including: This is critical so that developers and stakeholders don't have to hunt and drill down page after page to find the meaningful metrics you worked so hard to set up. #Smartsvn checkout localhost repository full# New team members, for example will need to know the subversion URL for checkout. #Smartsvn checkout localhost repository code#.#Smartsvn checkout localhost repository software#.#Smartsvn checkout localhost repository full#.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |