This represents the next major iteration of Teaspoon.

This represents the next major iteration of Teaspoon.

There will be a second phase of this iteration that will address several shortcomings of the javascript reporters and will clean up some of the client side code, as well as adding Jasmine 2.

Points of focus:
- cleaning up the configuration
- improving on coverage reports
- adding more formatters / getting old ones working better
- adding more complex driver options
- cleaning up legacy sprockets hacks (teaspoon_javascript_tag_for etc.)
- general improvements and code cleanup
- improve flow structure using better exceptions

## Notable Changes

Configuration has changed considerably, and deprecation warnings have been provided. In general it's probably best to remove your /initializers/teaspoon.rb and reinstall using the generator. Configuration is now consolidate into spec/teaspoon_env.rb. **This can cause a stack level too deep exception unless the teaspoon_env.rb file properly wraps the loading in a `defined?(Rails)` check.**

### Coverage reports

Coverage has changed in terms of configuration, to allow for different coverage configurations, and they behave a lot like suite configurations now. You can have any number of coverage configurations and can specify which coverage configuration to use from the command line.

```ruby
config.coverage do |coverage|
   coverage.reports = ["text"]
end
config.coverage :CI do |coverage|
   coverage.reports = ["cobertura", "lcov"]
end
config.use_coverage = :CI
```

### Frameworks

The configuration around which test framework is used for a suite has been changed and improved. Instead of configuring via the `javascripts` directive we're transitioning to a more complete structure with `use_framework`.

You can specify version of test framework with `use_framework` now, which allows for the gem to be updated, while keeping the impact on your specs minimal.

```ruby
suite.use_framework :mocha, "1.10.0"
```

### Formatters

Running CI with two formatters is easier, as formatters can be sent to file output instead of just $stdout by using > in the formatter name to be used.

```
teaspoon --format=dots,junit>/path/to/junit_output.xml
config.formatters =  ["dots", "junit>/path/to/junit_output.xml"]
```

### Drivers

Drivers have a more feature complete configuration strategy. For PhantomJS you can provide a string of flags (eg. --debug=true), and the selenium driver can accept a hash (or json string) to specify something other than firefox for instance.