Хобрук: Ваш путь к мастерству в программировании

лаконичный рецепт установки, настройки и запуска минитеста под автотестом или Guard

Раньше я запускал Rails + RSpec + автотест. Теперь я обновился до ruby ​​2.0 и хочу использовать minitest в среде, отличной от Rails (я использую Padrino/DataMapper). Я уверен, что я не одинок в желании этого.

Что было бы действительно полезно, так это краткий рецепт установки и настройки вещей, поэтому простая команда:

$ autotest

or

$ bundle exec guard

начнет тестировать все под /test. Я искал SO и InterWebs, но еще не нашел такого рецепта. Рецепт должен включать:

  • какие драгоценные камни вы должны включить в свой Gemfile?
  • какие команды вы запускаете для настройки среды?
  • какие файлы конфигурации и поддержки вам нужно создать (Rakefile? .autotest? и т. д.)
  • средство для тестовых файлов, чтобы require 'test_helper' позаботиться о повторяющихся функциях

Дополнительный балл за то, что показал, как настроить рычание и spork для полного опыта XP!


Ответы:


1

Ммм, я не пользуюсь автотестом, в наше время кажется, что лучше всего подходит Guard, так что:

# Add to Gemfile
group :development do
  gem 'terminal-notifier-guard'    # or libnotify for linux
  gem 'rb-fsevent', require: false # or rb-inotify for linux
  gem 'guard-minitest'
  gem 'minitest'
end

# From bash
$ bundle update
$ guard init minitest # or bundle exec guard init minitest

# Edit the GuardFile, mine looks like:
guard 'minitest' do
  # with Minitest::Unit
  watch(%r|^test/(.*)\/?test_(.*)\.rb|)
  watch(%r|^app/models/(.*)\.rb|)  { |m| "test/test_#{m[1]}.rb" }
  watch(%r|^lib/(.*)([^/]+)\.rb|)  { |m| "test/test_#{m[2]}.rb" }
  watch(%r|^test/helper\.rb|)      { 'test' }
end

# Here my test helper.rb. /test/helper.rb
ENV['PADRINO_ENV'] ||= 'test'
require_relative '../config/boot'
require 'minitest/autorun'


# Have fun!
$ bundle exec guard
24.03.2013
  • Действительно здорово — я перешел на Guard, и мне это нравится. Вы случайно не используете гроул или ruby_gntp, и используете ли вы spork? Я пытаюсь решить, какой уведомитель использовать... 24.03.2013
  • В своем энтузиазме я проверил ваш ответ. Но чтобы быть верным первоначальному вопросу, ответ должен показать, что у вас есть в вашем файле test_helper, и, возможно, test.rake или что-то еще, что заставляет minitest работать. Добавьте это, и я верну вам ваш чек!! 24.03.2013
  • Ладно, добавил. Помните, что я обычно называю его helper.rb, а не test_helper.rb или helper_test.rb. 24.03.2013
  • Ярмарка нафф. Я предполагаю, что вы расширяете MiniTest::Unit::TestCase где-то еще (разве у вас нет определения #app)? 25.03.2013
  • Новые материалы

    Деревья классификации и регрессии
    Это мой второй пост об алгоритмах машинного обучения. Мой первый пост посвящен искусственным нейронным сетям, вы можете найти его ниже. Нейронные сети — базовое..

    HMTL - Многозадачное обучение для решения задач НЛП
    Достижение результатов SOTA путем передачи знаний между задачами Область обработки естественного языка включает в себя десятки задач, среди которых машинный перевод, распознавание именованных..

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..