Greg Ruhl
Greg Ruhl

Reputation: 1114

Rake not running any tests with minitest

I have a file containing a class of multiple tests (using minitest). I have require 'minitest/autorun' at the top of the file and all tests run correctly when I call the file directly (ruby my_tests.rb).

So far, so good. However, now I'm trying to run my tests via rake.

require "rake/testtask"
task :default => [:test]

Rake::TestTask.new do |t|
  t.libs << Dir.pwd + "/lib/examples"
  t.test_files = FileList['test/test*.rb']
end

Calling rake shows test/my_test.rb getting called but no tests within the class get run (0 tests, 0 assertions, etc.). I do get these warnings:

...gems/minitest-5.8.0/lib/minitest/assertions.rb:17: warning: already initialized constant MiniTest::Assertions::UNDEFINED
...ruby/2.1.0/lib/ruby/2.1.0/minitest/unit.rb:80: warning: previous definition of UNDEFINED was here

How can I run my tests within rake successfully? I am not using rails.

EDIT: Here is the top of my test file:

require 'minitest/spec'
require 'minitest/autorun'
require 'minitest/reporters'

reporter_options = { color: true }
Minitest::Reporters.use![Minitest::Reporters::DefaultReporter.new(reporter_options)]

class Test_PowerSpecInputs < Minitest::Test
  def setup
    @mc = TestClass.new()
  end

  def test_does_lib_have_constant
    # my test code
  end
end

Upvotes: 0

Views: 1152

Answers (2)

Greg Ruhl
Greg Ruhl

Reputation: 1114

jphager2 got me thinking about tool versions and it turned out that my version of rake was fairly old. Updating to 11.x did the trick.

Upvotes: 0

nikkypx
nikkypx

Reputation: 2005

Try changing your Rakefile to this.

require "bundler/gem_tasks"
require "rake/testtask"

Rake::TestTask.new(:test) do |t|
  t.libs << "test"
  t.libs << "lib"
  t.test_files = FileList['test/**/*_test.rb']
end

task :default => :test

Upvotes: 2

Related Questions