- [fixed] First RSpec test to load would run twice
- [added] Rsync options are now customizable via
Useful when running on machines that use a combination of vendored gems and gemsets, i.e.
-aL --delete --ignore-errors --exclude=vendor/ruby --exclude=.bundle
- [added] Benchmark times for various system status messages
- [fixed] Specjour hang when attempting to resolve a bonjour reply
- [fixed] Specjour executes loader under current $LOAD_PATH
Specjour no longer assumes the required gems are available globally. Useful when running specjour under a vendored environment (bundle install --path=vendor).
- [fixed] Now compatible with thor 0.15.x
- [fixed] Not running specs without 'spec/' argument
- [fixed] Writing to a nil socket; timeout too small (josephlord)
- [fixed] Eagerly loading Rspec (jgdavey)
- [fixed] Load path incorrectly matching specjour (jgdavey)
- [fixed] Binary path used by Loader
- [fixed] Specjour prepare wouldn't wait for managers to complete
- [fixed] Slower machines adding completed tests back to suite
- [fixed] Dispatcher hanging after printing the report
- [added] More verbosity during startup
- [changed] Printer uses UNIX select instead of GServer (threads)
- [changed] Database is always dropped and reloaded using schema.rb or structure.sql
- [removed] RSpec < 2.8 compatibility
- [added] Memory utilizing forks. No longer forking and execing means workers start running tests faster.
- [added] Configuration.after_load hook; runs after loading the environment
- [added] Configurable rsync port
- [added] Specs distributed by example, not file! Means better distribution/fast spec suites.
- [added] Rails compiled asset directory (tmp/cache) to the rsync inclusion list. Workers won't have to compile assets during integration tests.
- [fixed] SQL structure files can be used to build the database.
- [fixed] Long timeout while waiting for bonjour requests. The bonjour code has been rewritten.
- [fixed] Load specjour in its own environment when running bundle exec specjour
- [fixed] Forks running their parent's exit handlers.
- [fixed] Database creation when the app depends on a database upon environment load (something as simple as a scope would cause this dependency). As long as the regular test environment can be loaded, a worker without a database shouldn't raise an exception, instead the db should be created.
l4rk and leshill
- [fixed] Cucumber failure reports not displayed
l4rk and leshill
- [added] Remove Jeweler
- [added] Use RSpec2 for development
- [added] Cucumber 0.9+ compatibility
- [added] RSpec2 compatibility
- [removed] No longer supporting RSpec 1 and Cucumber 0.8
- Stopping bonjour actually stops the currently running service
- Only retry connecting to a DRb object 5 times instead of timing out trying to connect to one bad connection
- Set correct process name when the dispatcher starts a listener
- [fixed] Cucumber output for scenario outlines (delitescere & supaspoida)
- [fixed] Undefined shared examples in Rspec2
- [fixed] INT signal sent to managers and workers, sets wants_to_quit where appropriate for Rspec2 and Cucumber
- [fixed] Error reporting for failed steps within a Background
- [added] Cucumber 0.9.x compatibility
- [added] RSpec 2.0.0 compatibility
- [fixed] Custom hooks now load in Ruby 1.9.2
- [fixed] Specjour prepare correctly recreates the db
- [added] Support for loading test DB from SQL file (config.active_record.schema_format = :sql)
- [added] Rsync failures raise Specjour::Error
[fixed] Distributing absolute paths to remote machines.
[added] Workers print the elapsed time of each test (redsquirrel)
[added] Dispatcher loads specjour/hooks.rb, useful for monkey patching (redsquirrel)
[changed] Decreased timeout to 2 seconds when searching for remote managers
- [fixed] Ruby 1.9.2 support through minor changes and DNSSD upgrade
- [fixed] DbScrub.drop actually invokes the db:drop rake task
- [fixed] Prepare task ignores rspec's at_exit callback, disabling the test suite from running after the prepare task completes.
[fixed] Shared example groups now supported in Rspec2
[removed] Hyperthread detection removed as it proved too unstable while running selenium
- [fixed] Only print cucumber summary when running features
[fixed] Cucumber prints elapsed time
[added] Print hostname for each hostname (closes gh-8)
[added] Rspec2 support
[fixed] Cucumber compatibility with 0.8.5
[fixed] The before_fork hook did not work in the rc1 because the custom hooks were loaded by the worker (after fork). We could have the manager preload the app but then you'll have stale managers. Instead, custom hooks are now located in the .specjour/hooks.rb file, essentially living outside of your application.
[changed] The generated rsyncd.conf now syncs the .specjour directory allowing hooks to be loaded by managers and workers.
[removed] Rake tasks have been removed, use the command-line instead.
[added] Thor is now used to parse command-line arguments. Try
specjour helpfor more details.
[added] Test discovery. Features will be autodiscovered by looking for a
featuresdirectory in your project. If you only want to run features, use
specjour dispatch project_path/features.
[changed] No longer need to run a manager and a dispatcher in separate processes. When not distributing to other computers, simply run
specjourin your project directory to run the suite among the number of cores on your machine.
[added] Project aliases. If you want to isolate a few computers in the cluster, tell them to listen for a different project name and run the dispatcher with that new name.
$ specjour listen --projects foo2 $ specjour dispatch --alias foo2
[added] Preparation. Running
specjour prepareinvokes the
Specjour::Configuration.prepareblock on each worker. By default this drops the worker's database and brings it back up.
[removed] --batch option which sent back results in batches. Now that each spec is run one at a time, batching no longer makes sense.
[removed] Global listening. You now must provide the project names you want to run specs for. Defaults to the project in your current working directory.
$ specjour listen --projects foo bar
[fixed] Rsync copies symbolic links. gh-6
- [fixed] DbScrub explicitly requires its dependencies and no longer loads the Rakefile. gh-10
- [changed] The rails plugin now runs in a Rails.configuration.after_initialize block
- [added] Correct exit status
- [fixed] Will reconnect when connection is lost while requesting tests
[fixed] Absolute paths in rsyncd.conf restrict portability. The rsync daemon completely fails when it can't find the path to serve which typically happens running specjour on another computer. Remove your rsyncd.conf to regenerate a new one. Back it up first if you've made changes to it. Backwards Incompatible
[fixed] CPU core detection works on OSX Core i7 (thanks Hashrocket!)
- [added] Backtrace for cucumber failures
- [added] The rsync daemon configuration file now lives in project_path/.specjour/rsyncd.conf. Edit your rsync exclusions there.
- [fixed] Don't report connection errors when CTRL-C is sent.
- [added] Cucumber support.
- [added] CPU Core detection, use -w to override with less or more workers