Как запустить один тест из набора тестов rails?



Как я могу запустить один тест из набора тестов rails?



rake test ANYTHING кажется, не поможет.

661   10  

10 ответов:

Примечание:это не запускает тест через rake. Так что любой код у вас есть в Rakefile не будет выполняться.

чтобы выполнить один тест, используйте следующую команду из главного каталога Вашего проекта rails:

ruby -I test test/unit/my_model_test.rb -n test_name

при этом выполняется один тест с именем "name", определенный в классе MyModelTest в указанном файле. Test_name формируется путем взятия имени теста, добавляя к нему слово "тест", а затем разделяя слова с помощью подчеркивает. Например:

class MyModelTest < ActiveSupport::TestCase

  test "valid with good attributes" do
    # do whatever you do
  end

  test "invalid with bad attributes" do
    # do whatever you do
  end
end

вы можете запустить оба теста через:

ruby -I test test/unit/my_model_test.rb

и только второй тест через

ruby -I test test/unit/my_model_test.rb -n test_invalid_with_bad_attributes

запустить тестовый файл:

rake test TEST=tests/functional/accounts_test.rb

запустить один тест в тестовом файле:

rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n /paid accounts/"

(из комментария @Puhlze.)

для рельсов 5:

rails test test/models/my_model.rb

благодаря @James, ответ, кажется, будет:

rails test test/models/my_model.rb:22

предполагая, что 22-это номер строки данного теста. По рельсам помогите:

 $ rails test --help

вы можете выполнить один тест, добавив номер строки к имени файла:

    bin/rails test test/models/user_test.rb:27

кроме того, обратите внимание, что ваш тест должен наследовать от ActionDispatch::IntegrationTest для этого работать (это была моя ошибка):

class NexApiTest < ActionDispatch::IntegrationTest
.
.
.

в рельсах 5,

я использовал этот способ для запуска одного тестового файла (все тесты в одном файле)

rails test -n /TopicsControllerTest/ -v

посмотреть здесь https://stackoverflow.com/a/41183694/3626659

для выполнения одного теста в фактическом наборе Rails:

bundle exec ruby -I"railties/test" actionpack/test/template/form_options_helper_test.rb

Если вы хотите запустить один тест, вы можете просто запустить их как обычный скрипт Ruby

ruby actionmailer/test/mail_layout_test.rb

вы также можете запустить целый набор (например. ActiveRecord или ActionMailer) by cd - входим в каталог и запускаем rake test внутри.

лучший способ-смотреть прямо в направляющие: http://guides.rubyonrails.org/contributing_to_ruby_on_rails.html#running-tests

cd actionmailer
bundle exec ruby -w -Itest test/mail_layout_test.rb -n test_explicit_class_layout

Сначала откройте папку lib, которую вы хотите проверить(это важно) , а затем запустите:

~/Projects/rails/actionview (master)$ ruby -I test test/template/number_helper_test.rb 

Comments

    Ничего не найдено.