Needing help using Rake from within a Ruby program

B

Bryan Richardson

[Note: parts of this message were removed to make it a legal post.]

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
 
G

Gordon Thiesfeld

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

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

Thanks,

Gordon
 
G

Gordon Thiesfeld

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
 
B

Bryan Richardson

[Note: parts of this message were removed to make it a legal post.]

Gordon,

How do I specify the Rakefile to use?

Thanks! -- BTR
 
G

Gordon Thiesfeld

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,821
Latest member
AleidaSchi

Latest Threads

Top