disu.se

Lookout-Rake

Lookout-Rake provides Rake tasks for testing using Lookout.

Installation

Install Lookout-Rake with

% gem install lookout-rake

Usage

Include the following code in your Rakefile:

require 'lookout-rake-3.0'

Lookout::Rake::Tasks::Test.new

If the :default task hasn’t been defined it’ll be set to depend on the :test task. The :check task will also depend on the :test task. There’s also a :test:coverage task that gets defined that uses the coverage library that comes with Ruby 1.9 to check the test coverage when the tests are run.

You can hook up your test task to use your Inventory:

load File.expand_path('../lib/library-X.0/version.rb', __FILE__)

Lookout::Rake::Tasks::Test.new :inventory => Library::Version

Also, if you use the tasks that come with Inventory-Rake, the test task will hook into the inventory you tell them to use automatically, that is, the following will do:

load File.expand_path('../lib/library-X.0/version.rb', __FILE__)

Inventory::Rake::Tasks.define Library::Version

Lookout::Rake::Tasks::Test.new

For further usage information, see the API documentation.

Integration

To use Lookout together with Vim, place contrib/rakelookout.vim in ~/.vim/compiler and add

compiler rakelookout

to ~/.vim/after/ftplugin/ruby.vim. Executing :make from inside Vim will now run your tests and an errors and failures can be visited with :cnext. Execute :help quickfix for additional information.

Another useful addition to your ~/.vim/after/ftplugin/ruby.vim file may be

nnoremap <buffer> <silent> <Leader>M <Esc>:call <SID>run_test()<CR>
let b:undo_ftplugin .= ' | nunmap <buffer> <Leader>M'

function! s:run_test()
  let test = expand('%')
  let line = 'LINE=' . line('.')
  if test =~ '^lib/'
    let test = substitute(test, '^lib/', 'test/', '')
    let line = ""
  endif
  execute 'make' 'TEST=' . shellescape(test) line
endfunction

Now, pressing <Leader>M will either run all tests for a given class, if the implementation file is active, or run the test at or just before the cursor, if the test file is active. This is useful if you’re currently receiving a lot of errors and/or failures and want to focus on those associated with a specific class or on a specific test.

Financing

Currently, most of my time is spent at my day job and in my rather busy private life. Please motivate me to spend time on this piece of software by donating some of your money to this project. Yeah, I realize that requesting money to develop software is a bit, well, capitalistic of me. But please realize that I live in a capitalistic society and I need money to have other people give me the things that I need to continue living under the rules of said society. So, if you feel that this piece of software has helped you out enough to warrant a reward, please PayPal a donation to now@disu.se. Thanks! Your support won’t go unnoticed!

Reporting Bugs

Please report any bugs that you encounter to the issue tracker.

Authors

Nikolai Weibull wrote the code, the tests, the manual pages, and this README.

Licensing

Lookout-Rake is free software: you may redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 3 or later, as published by the Free Software Foundation.