Needing help using Rake from within a Ruby program

Hello all,

I’m trying to invoke rake from within one of my Unit Test files to setup
a
test database before running tests and I’m having some trouble doing so.
I
try the following code in a file that is located in the same directory
as my
Rakefile:

rake = Rake::Application.new
rake[‘foo:bar:load’].invoke

and I get the following:

RuntimeError: Don’t know how to build task ‘foo:bar:load’

However, if I run rake from the command line in this same directory
passing
it the foo:bar:load task it works fine. Any suggestions?

Thanks! – BTR

On Jan 17, 2008 10:14 PM, Bryan R. [email protected] wrote:

and I get the following:

RuntimeError: Don’t know how to build task ‘foo:bar:load’

However, if I run rake from the command line in this same directory passing
it the foo:bar:load task it works fine. Any suggestions?

Thanks! – BTR

Did you require the rakefile in you code? rake does so automatically.

Thanks,

Gordon

Did you require the rakefile in you code? rake does so automatically.

Thanks,

Gordon

Wow, that was very terse. Even for me. What I mean is that the rake
command will require your rakefile automatically. But if you want to
use a rake task from ruby, you will have to explicitly require the
rakefile.

Thanks,

Gordon

Gordon,

How do I specify the Rakefile to use?

Thanks! – BTR

On Jan 17, 2008 10:53 PM, Bryan R. [email protected] wrote:

Gordon,

How do I specify the Rakefile to use?

Thanks! – BTR

I was a little off. I don’t think you can use require, but you can use
load.

require ‘rubygems’
require ‘rake’
load ‘path/to/Rakefile’

rake = Rake::Application.new
rake[‘spec’].invoke