Как запустить один тест из набора тестов рельсов?
Как запустить один тест из набора тестов rails?
rake test ANYTHING
кажется, не помогает.
Ответы
Ответ 1
ПРИМЕЧАНИЕ. Это не запускает тест через rake
. Таким образом, любой код, который у вас есть в Rakefile
, НЕ будет выполнен.
Чтобы запустить один тест, используйте следующую команду в главном каталоге проекта rails:
ruby -I test test/unit/my_model_test.rb -n test_name
Это запускает один тест с именем "имя", определенный в классе MyModelTest в указанном файле. Имя test_ формируется путем ввода тестового имени, добавляя его к слову "тест", а затем разделяя слова с символами подчеркивания. Например:
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
Ответ 2
Запустите тестовый файл :
rake test TEST=tests/functional/accounts_test.rb
Запустите одиночный тест в тестовом файле:
rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n /paid accounts/"
(Из комментария @Puhlze.)
Ответ 3
Для рельсов 5:
rails test test/models/my_model.rb
Ответ 4
Спасибо @James, ответ кажется:
rails test test/models/my_model.rb:22
Предполагая, что 22 - номер строки данного теста. По рекомендации rails:
$ rails test --help
Вы можете запустить один тест, добавив номер строки в имя файла:
bin/rails test test/models/user_test.rb:27
Также обратите внимание, что ваш тест должен наследовать от ActionDispatch:: IntegrationTest, чтобы это работало (это была моя ошибка):
class NexApiTest < ActionDispatch::IntegrationTest
.
.
.
Ответ 5
В рельсах 5,
Я использовал этот способ для запуска одного тестового файла (все тесты в одном файле)
rails test -n /TopicsControllerTest/ -v
посмотреть здесь
fooobar.com/questions/29266/...
Ответ 6
Для запуска одного теста в реальном наборе Rails:
bundle exec ruby -I"railties/test" actionpack/test/template/form_options_helper_test.rb
Ответ 7
Это был глупый полуночный вопрос. Rails любезно печатает команду, выполняемую с помощью rake test
. Остальное - упражнение для вырезания и вставки.
~/projects/rails/actionpack (my2.3.4)$ ruby -I"lib:test" "/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/controller/base_test.rb"
Ответ 8
Если вы хотите запустить один тест, вы можете просто запустить их как обычный Ruby script
ruby actionmailer/test/mail_layout_test.rb
Вы также можете запустить целый набор (например, ActiveRecord или ActionMailer) с помощью cd
-ing в каталог и запустить rake test
внутри.
Ответ 9
Лучший способ - посмотреть прямо в руководства: 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
Ответ 10
Сначала перейдите в папку библиотеки, которую вы хотите протестировать (это важно), а затем запустите:
~/Projects/rails/actionview (master)$ ruby -I test test/template/number_helper_test.rb
Ответ 11
В моей ситуации для rake
работает только TESTOPTS="-n='/sample/'"
:
bundle exec rake test TEST=test/system/example_test.rb TESTOPTS="-n='/sample/'"