Skip to content
Robert Cochran edited this page Apr 1, 2014 · 30 revisions

0.0.8

  • Optimization for cataloging step definition calls. Runtimes with this turned on should now be 1/5th of what they were previously.
  • Removed rule reasons from the html.
  • Converted rule reasons from strings that were being evaluated into lambda expressions. Decision was based on readability and long term addition of rules and custom rules by users.
  • Fixed issue where the implementation word for tab would trigger on any word that included it as a part. 'Table' was being penalized twice, once for 'table' and once for 'tab'.
  • Fixed issue where a feature file with no lines at all would throw a runtime exception, preventing cuke_sniffer from finishing.
  • Several convenience methods added to RuleTarget objects, see commit history for full additions.

0.0.7

  • Added new phrases to the implementation word rule: tab and database
  • Fixed issue where a universal matched step would mask all dead steps and show all steps with at least one call due to fuzzy matching
  • Dramatic update to html output.
  • Function bar added to html report to expand/collapse all subsections at once
  • Added mute option to CLI to prevent cataloging of step definitions (decrease runtime) by passing :no_catalog => true in the constructor hash
  • Added mute option to command line to prevent cataloging of step definitions (decrease runtime) by passing -nc or --no_catalog
  • Complex example and different outputs added to examples folder.

0.0.6

  • Constructor arguments change.

Previously:

CLI.new(features_location, step_definitions_location, hooks_location)

Current:

CLI.new(parameters) where parameters is a hash that can have the following key/value pairs

:project_location

:features_location

:step_definitions_location

:hooks_location
  • Added Hook and Scenario information to console output.

  • Change in how rules are executed. No longer during parsing, but after everything has been parsed. Also rules extracted from the classes their evaluated to a collective generic rules evaluator.

  • Html output now includes all rules ran against the project.

  • Html output now includes hook and scenario summary information.

  • Rules information added the xml output.

  • Added messages for reports in which there are no objects in a category.

  • Added messages for reports in which all objects do not have rules triggered.

  • Minimized html output option added. --out min_html

  • General complexity reduction across asset.

0.0.5

  • Full rebuild of html to focus more on the data that is valued.
  • Added hooks information to summary and made its own section.
  • Updated tag rules for Scenario and Features to not be as tailored and less spammy in the improvement lists for certain projects.
  • Added parsing and handling of hooks.
  • Included hook data in the xml output.
  • Added a error level rule for a hook without begin/rescue blocks
  • Added a warning level rule for a hook without code
  • Added a information level rule for hooks not in a hooks.rb file
  • Added a error level rule for an Around hook with no call block
  • Added a error level rule for an Around hook without 2 parameters
  • Added a warning level rule for Hooks that are all comments.
  • Fixed an issue where inline tables were capturing examples tables. See issue #25.
  • Fixed an issue where lines with @ symbols were being mistaken for tags, resulting in several unwanted scenarios being made as well as possible parsing errors. See issue #27.
  • Fixed an issue where the phrase /.*Scenario:/ would set off the parsing of a new Scenario object in a feature. See issue #26.
  • Added functionality to do fuzzy logic matching of step calls to step definitions. See issue #17 for more details.
  • Added a warning level rule around commas in a feature of scenario description
  • Added a fatal level rule around backgrounds that have tags
  • Fixed an issue where nested step definitions were retaining escape characters and were not being properly cataloged.
  • Fixed an issue where the tags on a features first scenario were being dropped.
  • Fixed an issue where a rules message was being appended for each time it fired, adding the tag to the end of the message.

0.0.4 (yanked and will be available in next version)

  • Fixed issue where step definitions that are only ever referenced through dynamic string building in nested steps were not being cataloged, resulting in it being a dead step.
  • Fixed issue with multiple spaces between the Given/When/Then/And and the actual content of the step.
  • Made it so that you no longer have to include the .rb to the command line call for OSX or JRuby systems.
  • Added warning level rule for Scenario having the same tag as its Feature.
  • Added warning level rule for all Scenarios in a Feature having the same tag.
  • Removed several rules from firing against Backgrounds.
  • Fixed issue where nested step definitions called with the "step" method was not being recognized
  • Fixed issue where commented nested step calls were throwing an exception that prevented cuke_sniffer from completing.
  • Fixed issue where step definitions that were called by steps that were built as a by product of scenario outlines and only ever accessed this way were being declared dead steps. See issue #18 for more details.

0.0.3

  • Added warning level rule for pending step definitions.

  • Added information level rule for todos step definitions.

  • Added information level rule for each sleep less than 2 seconds appearing in a step definition.

  • Added warning level rule for each sleep greater than 2 seconds appearing in a step definition.

  • Fixed issues around interpolated string use with nested steps. See issues #11 and #12.

  • Unified the rule hashes in RulesConfig for easier user manipulation. Added explanation to readme on how.

  • Relaxed the rigidness of the nested step definition regular expressions, specifically around string literals and treating steps as a method call.

    • steps("And my step")
    • steps %{And my step}
    • steps %q{And my step}
    • steps %Q{And my step}
  • Added ability to output cuke_sniffer data to xml. New method on CLI object of output_xml(optional_name). For command line use cuke_sniffer -o(or --out) xml <optional_name>.

  • Dead steps no longer display in the Step Definitions section in the html output.

  • Improved user experience for dead steps in html output. Now displayed in the below format:

    file_path/file_name

      1 - /my regex/
      5 - /my other regex/
    
  • Added warning level rule for lazy debugging practices through printing to the console.

  • Added warning level rule for multiple uses of Given/When/Then in a scenario.

  • Added error level rule for 1 word scenario steps.

  • Added the ability to output results in xml format for both command line and in scripts. Updated help text for command line. New dependency introduced, ROXML.

  • Added warning level rule for empty feature files.

  • Fixed issue where an empty feature file would throw a parsing exception.

  • Fixed issue where steps only used in backgrounds were not being cataloged and resulting in them being labeled as a dead step.

0.0.2

  • All files with step definitions will be parse regardless of casing/naming convention. Previously expected the convention of '*steps.rb'.
  • Removed graphical issue with highlighting with step definitions in html output.
  • Implemented ability to name the html output when ran from command line.
  • Added threshold system to determine acceptable/unacceptable cucumber objects.
  • Updating markup to be more user friendly as well as include more information (Scenario, Threshold).
  • Fixed issue with scenarios not including steps that followed inline tables.
  • Fixed issue where inline code nested steps were not being parsed as nested steps and resulted in them being inaccurately labeled as a dead step.
  • Changed Dead Steps display to be sorted by location.
  • Removed the ability for multiple rules to be fired against a commented scenario line.
  • Removed display of all step call locations in the case of step definitions without parameters.
Clone this wiki locally