<commit_before># Cucover

Cucover is a thin wrapper for [Cucumber](http://github.com/aslakhellesoy/cucumber/tree/master) which makes it lazy.

What does it mean for Cucumber to be lazy? It will only run a feature if it needs to.

How does it decide whether it needs to run a feature? Every time you run a feature using Cucover, it watches the code in 
your application that is executed, and remembers. The next time you run Cucover, it skips a feature if the source files (or the feature itself)
have not been changed since it was last run.

## Installation and Usage

There's no gem for now, so just clone the code from github.

To run your features lazily, just use the cucover binary instead of cucumber. Use the same ommand-line options as usual, they are all passed 
directly to cucumber. No magic to see here.

## Limitations

  * Cucover uses RCov to watch the code executed by each feature. RCov does not report ERB view templates, so rails views that are touched will
not cause their features to be re-run.
  * Anything that runs out of process will not be covered, and therefore cannot trigger a re-run.
  * This is very new and experimental. There may be bugs. Feedback is welcome via github messages.<commit_msg>Add todo<commit_after># Cucover

Cucover is a thin wrapper for [Cucumber](http://github.com/aslakhellesoy/cucumber/tree/master) which makes it lazy.

What does it mean for Cucumber to be lazy? It will only run a feature if it needs to.

How does it decide whether it needs to run a feature? Every time you run a feature using Cucover, it watches the code in 
your application that is executed, and remembers. The next time you run Cucover, it skips a feature if the source files (or the feature itself)
have not been changed since it was last run.

## Installation and Usage

There's no gem for now, so just clone the code from github.

To run your features lazily, just use the cucover binary instead of cucumber. Use the same ommand-line options as usual, they are all passed 
directly to cucumber. No magic to see here.

## Limitations

  * Cucover uses RCov to watch the code executed by each feature. RCov does not report ERB view templates, so rails views that are touched will
not cause their features to be re-run.
  * Anything that runs out of process will not be covered, and therefore cannot trigger a re-run.
  * This is very new and experimental. There may be bugs. Feedback is welcome via github messages.
  
# TODO

  * Re-run if a feature failed
{'fraction_non_alphanumeric': 0.04386317907444668, 'fraction_numerical': 0.0, 'mean_word_length': 3.8840864440078584, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4689758', 'n_tokens_mistral': 683, 'n_tokens_neox': 667, 'n_words': 412}