Pete Yandell
2006-Jan-12 04:20 UTC
[Rails] Engines issue: rake test_plugins failing when it shouldn''t
I create a simple engine with a simple controller:
class FredController < ApplicationController
def hello
render :text => ''Hello, world!''
end
end
and I create a simple functional test within the engine:
class FredControllerTest < Test::Unit::TestCase
...
def test_hello
get :hello
assert_response :success
end
end
Running ''rake test_plugins'' succeeds, and firing up the server
and
requesting /fred/hello gives the expected page.
Now, in the project that includes the engine, I override FredController:
class FredController < ApplicationController
def goodbye
render :text => ''Goodbye.''
end
end
Requesting /fred/hello still gives the correct page (as it should),
but now ''rake test_plugins'' fails with:
1) Error:
test_hello(FredControllerTest):
ActionController::UnknownAction: No action responded to hello
...
./vendor/plugins/my_engine/test/functional/
fred_controller_test.rb:16:in `test_hello''
In other words, as soon as I define a controller in the app that is
the same as a controller in the plugin, the engine tests use only the
code from the app and not the code from the plugin. I would have
thought they''d use both (as the running app does), or, at worst, use
only the controller code from the plugin.
Can anyone confirm this issue? Is there some way that I can work
around it?
Cheers,
Pete Yandell
James Adam
2006-Jan-12 08:52 UTC
[Rails] Engines issue: rake test_plugins failing when it shouldn''t
This is a known issue, directly a result of an update that I made a few days ago to the engines plugin. Replace your copy of /vendor/plugins/engines with what you can find at: http://opensvn.csie.org/rails_engines/engines/tags/rel_1.0.1 I should have a fixed version later today... - james On 1/12/06, Pete Yandell <pete@notahat.com> wrote:> I create a simple engine with a simple controller: > > class FredController < ApplicationController > def hello > render :text => ''Hello, world!'' > end > end > > and I create a simple functional test within the engine: > > class FredControllerTest < Test::Unit::TestCase > ... > def test_hello > get :hello > assert_response :success > end > end > > Running ''rake test_plugins'' succeeds, and firing up the server and > requesting /fred/hello gives the expected page. > > Now, in the project that includes the engine, I override FredController: > > class FredController < ApplicationController > def goodbye > render :text => ''Goodbye.'' > end > end > > Requesting /fred/hello still gives the correct page (as it should), > but now ''rake test_plugins'' fails with: > > 1) Error: > test_hello(FredControllerTest): > ActionController::UnknownAction: No action responded to hello > ... > ./vendor/plugins/my_engine/test/functional/ > fred_controller_test.rb:16:in `test_hello'' > > In other words, as soon as I define a controller in the app that is > the same as a controller in the plugin, the engine tests use only the > code from the app and not the code from the plugin. I would have > thought they''d use both (as the running app does), or, at worst, use > only the controller code from the plugin. > > Can anyone confirm this issue? Is there some way that I can work > around it? > > Cheers, > > Pete Yandell > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >
Pete Yandell
2006-Jan-12 10:39 UTC
[Rails] Engines issue: rake test_plugins failing when it shouldn''t
James, Thanks for your answer, but I think the problem is more than a few days old. It''s been happening to my code for a couple of weeks at least. Replacing the engines plugin with the tagged version suggested makes no difference. Cheers, Pete Yandell On 12/01/2006, at 7:52 PM, James Adam wrote:> This is a known issue, directly a result of an update that I made a > few days ago to the engines plugin. Replace your copy of > /vendor/plugins/engines with what you can find at: > > http://opensvn.csie.org/rails_engines/engines/tags/rel_1.0.1 > > I should have a fixed version later today... > > - james > > On 1/12/06, Pete Yandell <pete@notahat.com> wrote: >> I create a simple engine with a simple controller: >> >> class FredController < ApplicationController >> def hello >> render :text => ''Hello, world!'' >> end >> end >> >> and I create a simple functional test within the engine: >> >> class FredControllerTest < Test::Unit::TestCase >> ... >> def test_hello >> get :hello >> assert_response :success >> end >> end >> >> Running ''rake test_plugins'' succeeds, and firing up the server and >> requesting /fred/hello gives the expected page. >> >> Now, in the project that includes the engine, I override >> FredController: >> >> class FredController < ApplicationController >> def goodbye >> render :text => ''Goodbye.'' >> end >> end >> >> Requesting /fred/hello still gives the correct page (as it should), >> but now ''rake test_plugins'' fails with: >> >> 1) Error: >> test_hello(FredControllerTest): >> ActionController::UnknownAction: No action responded to hello >> ... >> ./vendor/plugins/my_engine/test/functional/ >> fred_controller_test.rb:16:in `test_hello'' >> >> In other words, as soon as I define a controller in the app that is >> the same as a controller in the plugin, the engine tests use only the >> code from the app and not the code from the plugin. I would have >> thought they''d use both (as the running app does), or, at worst, use >> only the controller code from the plugin. >> >> Can anyone confirm this issue? Is there some way that I can work >> around it? >> >> Cheers, >> >> Pete Yandell >> _______________________________________________ >> Rails mailing list >> Rails@lists.rubyonrails.org >> http://lists.rubyonrails.org/mailman/listinfo/rails >> > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails