-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Class and example reloading #31
Conversation
Before it would log an error and keep on going anyway. The Containment#protect block now throws the symbol that instructs guard that there was an error and to stop testing.
Additional custom_reloaders can also be passed in via options to support other frameworks like Rails 2.x or custom class reloaders. Closes jkutner#29
Excellent. Looking at it now. |
I should note that both the new |
end | ||
|
||
context 'with a custom error_handler' do | ||
subject(:containment) { described_class.new(:error_handler => lambda { @custom_handler_called = true }) } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This spec failed for me, with wrong number of arguments (1 for 0)
. But changing the lambda to lambda { |e| ...
fixed it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I'll add a commit to fix that. I forgot that my JRuby was running in 1.8 mode. Thanks.
I'm finding that on subsequent runs, the count of examples is increased. So if the first run is |
Not at all. This was intended to fix that. Also, was that not happening for you before? Let me see if I can reproduce that. |
I'm testing it on https://github.com/jkutner/get_back. My Guardfile is this:
It probably was happening with earlier versions and I just never noticed. |
Ok, I see what happens. When I kick off the tests by pressing |
I think we should merge this as is, and address the |
Ah, interesting. I never run the full test suite in guard since it takes about an hour ;-) This might be a quick fix. I'll take a look before you merge. |
ok |
That should do the trick. Now I unload the examples before each run in |
I didn't update the readme documenting the Rails reloading support. One of us should do that before the release, but I won't have time today. Also this should probably be at least a minor version bump (0.2.0?). |
I'll handle the readme. And I agree that this should be a 0.2.0 release. Awesome work! thanks for the code. |
I'm getting some pretty odd results when running the specs with your lastest commit. Are you seeing this?
|
FWIW, the code works on a real project. And running the specs individually works too |
No, that's pretty strange seeing a NullPointerException since this has no |
May be the JVM version. I've found a workaround though. Do you see any problems with do this in
|
I can't think of any other way that specs would run, so I think that should |
Merged! Good stuff. |
I'm getting this error now with the latest release. Investigating further.
|
Are you seeing that with the 0.2.0 gem and not the code in master? |
I am seeing this in master. It seems to stem from the controller watch in the Guardfile:
As the error goes awayf for me if I just map that watch to one of those values in the array. Will try to dig deeper in a bit. |
Opening a new issue #34 |
This PR contains a few different changes. Please review carefully.
Use Rails 3.2+ class reloading when available
Additional custom_reloaders can also be passed in via options to support
other frameworks like Rails 2.x or custom class reloaders.
I wrote support in
Reloaders
for prepending, but I didn't hook it up to jruby-rspec. Probably before this is merged, we should decide to either drop prepend support or support a way to prepend reloaders. We might also consider supporting a way to replace the default reloaders. I wanted to get your opinion on this wholeReloaders
thing before I fleshed it all out.This closes #29
Unload previous examples so that they do not accumulate
This fixes #30
Syntax errors now stop the specs from running
Before it would log an error and keep on going anyway, sometimes scrolling an important error off of the screen. The Containment#protect block now throws the symbol that instructs guard that there was an error and to stop testing.