# CHANGES ## Pork 1.4.2 -- 2015-09-23 ### Bugs fixed * Do not extend anything if no `report_extensions` was loaded. ## Pork 1.4.1 -- 2015-07-23 ### Enhancement * Introduced `Expect#approx` for comparing two floating point numbers. ### Bugs fixed * Removed the extra colon with PORK_REPORT=description. ## Pork 1.4.0 -- 2015-07-18 ### Enhancement * Introduced `Pork.report_mode` and `ENV['PORK_REPORT']`. * The replicating command for `ENV['PORK_SEED']` is more accurate now. * Now you can still run test sequentially when `ENV['PORK_TEST']` is set. ### Bugs fixed * Using `ENV['PORK_TEST']` to specify a describe block would run all before/after blocks properly now. ## Pork 1.3.1 -- 2015-06-06 ### Enhancement * Added `pork_description` in the test case so that we could access the description for the running test case. To access the full message, use `self.class.send(:description_for, "would: #{pork_description}")`. Note that this is not a public API yet, and is subject to change. ## Pork 1.3.0 -- 2015-05-24 ### Incompatible changes * `Pork.run` is renamed to `Pork.execute`, and `Pork.run` would now do a full run. * `Pork::Executor.all_tests` would also include paths to describe blocks. ### Enhancement * Now `describe` could also take a second argument to specify groups. * `PORK_TEST` could also accept a file path and line number pointing to a describe block. Previously only would block would work. ### Bugs fixed * `Pork.show_source` would never raise SyntaxError anymore. ## Pork 1.2.4 -- 2015-04-25 ### Enhancement * Introduced `Pork.show_source` to print the source of failing tests. Using this feature requires `method_source` installed. ### Bugs fixed * Fixed a potential data race in parallel tests using `should`. ## Pork 1.2.3 -- 2015-04-16 ### Enhancement * Now `would` could take a second argument with `:groups => [:name]`, and you could also specifying the groups to run in `PORK_TEST`. Checkout README for more information. Input from @mz026 * `PORK_TEST` could also accept a file path without a line number now. ## Pork 1.2.2 -- 2015-03-19 ### Enhancement * Show tests per second and assertions per second as in minitest. ## Pork 1.2.1 -- 2015-03-18 ### Bugs fixed * Fixed that sometimes it cannot find the test because source_location sometimes won't use the full path. Always use `File.expand_path` then. * Properly strip pork backtrace. ## Pork 1.2.0 -- 2015-03-17 ### Incompatible changes * Mutant integration is removed for now. Please let me know if it could be integrated without a problem. * Default mode changed to `:shuffled`, and the original mode renamed to `:sequential`. * Running individual test changed from description to file:line_number. Input from @mz026 ### Enhancement * Paths in backtrace would no longer use `.` to indicate current directory. Some editor such as Sublime didn't like it. ## Pork 1.1.3 -- 2015-02-04 * Fixed exit status. * Introduced `require 'pork/more'` for colored output and bottom-up backtrace. * Introduced `Pork.Rainbows!` for fun. ## Pork 1.1.2 -- 2015-01-28 * Really fixed passing `ENV['PORK_MODE']=execute`. I should sleep now. ## Pork 1.1.1 -- 2015-01-28 * Fixed passing `ENV['PORK_MODE']=execute` ## Pork 1.1.0 -- 2015-01-28 ### Bugs fixed * Now we can interrupt the tests and still see current report. * Use `exit!` in `at_exit` to avoid issues. * Fixed the description order for nested test cases. ### Incompatible changes * Pork::Parallel.parallel API slightly changed. * Pork::Isolate.isolate API slightly changed. * Pork::Isolate.all_tests format changed. * Mutant::Integration::Pork could be broken now... but it never really works. ### Enhancement * Accept `ENV['PORK_MODE']` for `Pork.execute_mode` * Accept `ENV['PORK_SEED']` for setting up srand. * Accept `ENV['PORK_TEST']` for running a particular test case. * For failure tests, it would now print the replicating command. ## Pork 1.0.4 -- 2014-12-29 * Make backtrace easier to read by using `.` and `~`. * Fix parallels mode to detect missing assertions properly. * Slightly changed `Pork::Stat`. A kinda incompatible change, but using `Pork::Stat` should be considered private. ## Pork 1.0.3 -- 2014-12-26 * Fix `Kernel#should` compatibility for JRuby 1.7.18- and Ruby 2.2.0 by never assuming ThreadGroup#list would preserve the order. ## Pork 1.0.2 -- 2014-12-09 * Hash difference is much improved. Now it uses `/` to separate keys, and use quotes for string keys and colons for symbol keys, so that we won't be confused when comparing string hashes and symbol hashes. Further more, it would show `` for hashes missing a key, and `` for arrays out of bound. Previously, hash with nil values are indistinguishable with hash missing keys. Thanks Chun-Yi Liu (@trantorliu). ## Pork 1.0.1 -- 2014-11-21 * Fixed the failure message for hash diff. ## Pork 1.0.0 -- 2014-11-20 ### Bugs fixed * Now exceptions raised in after hook are properly rescued. * Previously runtime includes loading time, now it only includes test running time. ### Incompatible changes * Internal structure was completed rewritten. * Simply `require 'pork'` would no longer introduce `Kernel#should`. Use `require 'pork/should'` to bring it back. (`require 'pork/auto'` would already do this for you) * Removed `@__pork__desc__` (which is implementation detail anyway) * Renamed `Pork.report_at_exit` to `Pork.autorun` ### Enhancement * `Pork.autorun` also accepts a flag to enable/disable autorun. * Introduced `Pork::Expector#expect` to replace `Kernel#should` * `Kernel#should` is now optional and a wrapper around `Pork::Expector#expect` * Introduced `Pork::Inspect#diff_hash`. See README.md for `Pork.inspect_failure_mode` for detail. * Introduced `Pork.execute_mode`. See README.md for detail * Introduced `Pork::Isolate` which allows you to run a specific test. * Introduced `Pork::Shuffle` which we could run tests in random order. See README.md for `Pork.execute_mode` for detail. * Introduced `Pork::Parallel` which we could run tests in parallel. See README.md for `Pork.execute_mode` for detail. * Introduced `Pork::Executor#pork_stat` to access the current stat from test. * Introduced mutant integration. ## Pork 0.9.2 -- 2014-11-07 * Pork::Error is now a StandardError instead of an Exception. We should all try to avoid using Exception directly, since we don't want to interferer with signal handling. ## Pork 0.9.1 -- 2014-07-14 ### Bugs fixed * It would now properly `exit(1)` when there's an error. * It would now properly search the stashes chain upon `paste`. ### Enhancement * `Kernel#should` now accepts a second argument for building messages lazily. * `Should#satisfy` now accepts a second argument for building messages lazily. * Introduced `Pork.inspect_failure_mode` to switch failure display mode. * Default `Pork.inspect_failure_mode` to `:auto`, which would display failures accordingly. ## Pork 0.9.0 -- 2014-07-11 * First serious release! Bunch of updates. Nearly complete. ## Pork 0.1.0 -- 2014-07-09 * Birthday!