запустить минитест программно

У меня есть этот код (в pry):

class Hash
  def invert_by_array
    each.with_object({}) {|(key,value), obj|
      value.each do |element|
        obj[element] = key
      end
    }
  end
end

require 'minitest/spec'

describe "invert_by_array" do
  it "should use the array element as keys" do
    {'foo' => %w(bar baz)}.invert_by_array.must_equal({'bar' => 'foo', 'baz' => 'foo'})
  end
end

Как я могу запустить тест внизу из редактирования - в основном скопировать / вставить содержимое выше в строку чтения?


person Reactormonk    schedule 03.08.2012    source источник
comment
примечание: Hash[flat_map { |k, vs| vs.product([k]) }].   -  person tokland    schedule 03.08.2012


Ответы (1)


Вы можете вызвать бегуна, вызвав MiniTest::Unit.runner.run

class Hash
  def invert_by_array
    each.with_object({}) {|(key,value), obj|
      value.each do |element|
        obj[element] = key
      end
    }
  end
end

require 'minitest/spec'

describe "invert_by_array" do
  it "should use the array element as keys" do
    {'foo' => %w(bar baz)}.invert_by_array.must_equal({'bar' => 'foo', 'baz' => 'foo'})
  end
end

MiniTest::Unit.runner.run
person blowmage    schedule 03.08.2012
comment
После двух правок у вас есть два теста. Не совсем то, что я хотел. Могу ли я запустить объект, возвращенный describe напрямую? - person Reactormonk; 03.08.2012
comment
Теперь, вместо того, чтобы требовать «minitest/spec» и заканчивая MiniTest::Unit.runner.run, я бы потребовал «minitest/autorun» и удалил последнюю строку. Тест запустится автоматически непосредственно перед тем, как Ruby выйдет из скрипта. - person the Tin Man; 09.10.2014