Nano Hash - криптовалюты, майнинг, программирование

Тест рейка не принимает тесты водосвинки в минитесте

Я настраиваю базовый шаблон для тестирования функций водосвинки в приложении rails. Я также использую MiniTest вместо RSPEC.

Запуск Rake Test, похоже, не справляется с моими тестами функций. У меня есть один тест в файле, запуск rake test не меняет количество утверждений. Пропуск теста также не отображается, когда я запускаю rake test.

Вот ссылка на репозиторий: https://github.com/rrgayhart/rails_template

Вот шаги, которые я выполнил

  1. Я добавил это в Gemfile и запустил пакет

    group :development, :test do
      gem 'capybara'
      gem 'capybara_minitest_spec'
      gem 'launchy'
    end
    
  2. Я добавил это в test_helper

    require 'capybara/rails'
    
  3. Я создал папку test/features

  4. Я создал файл с названием drink_creation_test.rb.

  5. Вот код из этого тестового файла функций

    require 'test_helper'
    
    class DrinkCreationTest < MiniTest::Unit::TestCase
    
      def test_it_creates_an_drink_with_a_title_and_body
          visit drinks_path
          click_on 'new-drink'
          fill_in 'name', :with => "PBR"
          fill_in 'description', :with => "This is a great beer."
          fill_in 'price', :with => 7.99
          fill_in 'category_id', :with => 1
          click_on 'save-drink'
          within('#title') do
            assert page.has_content?("PBR")
          end
          within('#description') do
            assert page.has_content?("td", text: "This is a great beer")
          end
      end
    
    end
    

Я думаю, что у меня проблема с неправильным подключением чего-то. Пожалуйста, дайте мне знать, если я могу предоставить что-нибудь еще, что может помочь в диагностике этой проблемы.


Ответы:


1

Здесь происходит несколько вещей. Во-первых, задача rake test по умолчанию не будет собирать тесты не в каталогах тестов по умолчанию. Поэтому вам нужно либо переместить тестовый файл, либо добавить новую задачу rake для тестовых файлов в test/features.

Поскольку вы используете capybara_minitest_spec, вам необходимо включить в свой тест Capybara::DSL и Capybara::RSpecMatchers. И поскольку вы не используете ActiveSupport::TestCase или один из других тестовых классов Rails в этом тесте, вы можете увидеть несоответствия в базе данных, потому что этот тест выполняется вне стандартных тестовых транзакций rails.

require 'test_helper'

class DrinkCreationTest < MiniTest::Unit::TestCase
  include Capybara::DSL
  include Capybara::RSpecMatchers

  def test_it_creates_an_drink_with_a_title_and_body
      visit drinks_path
      click_on 'new-drink'
      fill_in 'name', :with => "PBR"
      fill_in 'description', :with => "This is a great beer."
      fill_in 'price', :with => 7.99
      fill_in 'category_id', :with => 1
      click_on 'save-drink'
      within('#title') do
        assert page.has_content?("PBR")
      end
      within('#description') do
        assert page.has_content?("td", text: "This is a great beer")
      end
  end

end

Или вы можете использовать minitest-rails и minitest-rails-capybara для создания и запуска этих тестов.

$ rails generate mini_test:feature DrinkCreation
$ rake minitest:features
07.11.2013
  • Отлично! Это идеальный ответ — мы смогли получить тесты, если переместили их в интеграцию (что соответствует вашему комментарию к задаче rake) — но, в конце концов, перешли к перемещению драгоценного камня, специфичного для минитеста. Еще раз спасибо! 08.11.2013

  • 2

    Я считаю, что у minitest есть собственный драгоценный камень для рельсов при использовании капибары: minitest-rails-capybara

    Следование приведенным там инструкциям может помочь, но я никогда раньше не устанавливал капибару с мини-тестом.

    05.11.2013
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..