Запуск minitest не производит вывод - PullRequest
0 голосов
/ 13 октября 2018

У меня есть файл my_test.rb со следующим содержимым:

require 'test/unit'

class MyTest < Test::Unit::TestCase

  # Called before every test method runs. Can be used
  # to set up fixture information.
  def setup
    # Do nothing
  end

  # Called after every test method runs. Can be used to tear
  # down fixture information.

  def teardown
    # Do nothing
  end

  # Fake test
  def dummy_test
    print "Something!"
    fail
  end
end

Когда я запускаю ruby my_test.rb, вывод абсолютно отсутствует.

Как запустить модульные тестыв этом файле и посмотреть, проходят они или нет?

Ответы [ 3 ]

0 голосов
/ 13 октября 2018

Как уже говорилось ранее, вы не вызываете свою функцию, и поэтому ничего не произойдет, поскольку ruby ​​не выполняет автоматически первую / последнюю функцию.

Примером может служить реализация этого кода

...
def main()
    print "Something!"
end

main()

И если вы хотите вызвать функцию, которая вызывает другие функции, вы будете делать то же самое

Пример:

def main()
    other_function1()
    other_function2()
end

main()

И другие_функции будут другими функциями, которые вы определяете и вызываетев основной функции.

0 голосов
/ 13 октября 2018

Test-unit будет искать методы, которые запускают с «test», и использовать их в качестве методов тестирования.В вашем коде есть метод, который заканчивается на «test», но ни один из них не начинается с него, поэтому он не видит никаких тестов для запуска.

Измените имя метода с dummy_test наtest_dummy и вы должны увидеть ожидаемый результат.

0 голосов
/ 13 октября 2018

Нет ничего плохого в вашей реализации и вашем реальном коде.Но для того, чтобы ваш dummy_test мог выполнить то, что находится внутри его определения, он должен быть вызван первым;то, что вы не делаете, поэтому, когда вы запускаете свой файл, вы не получаете никакого вывода.

Вы можете создать пример теста и вызвать ваш метод dummy_test:

...

def test_something
  dummy_test
end

# Fake test
def dummy_test
  print "Something!"
  fail
end
...