Needing help using Rake from within a Ruby program

Discussion in 'Ruby' started by Bryan Richardson, Jan 18, 2008.

  1. [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
     
    Bryan Richardson, Jan 18, 2008
    #1
    1. Advertisements

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

    Thanks,

    Gordon
     
    Gordon Thiesfeld, Jan 18, 2008
    #2
    1. Advertisements

  3. 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 Thiesfeld, Jan 18, 2008
    #3
  4. [Note: parts of this message were removed to make it a legal post.]

    Gordon,

    How do I specify the Rakefile to use?

    Thanks! -- BTR
     
    Bryan Richardson, Jan 18, 2008
    #4
  5. 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
     
    Gordon Thiesfeld, Jan 18, 2008
    #5
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.