Как запустить один тест из набора тестов rails?
rake test ANYTHING
кажется, не помогает.
Как запустить один тест из набора тестов rails?
rake test ANYTHING
кажется, не помогает.
ПРИМЕЧАНИЕ. Это не запускает тест через 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
Запустите тестовый файл :
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:
$ rails test --help
Вы можете запустить один тест, добавив номер строки в имя файла:
bin/rails test test/models/user_test.rb:27
Также обратите внимание, что ваш тест должен наследовать от ActionDispatch:: IntegrationTest, чтобы это работало (это была моя ошибка):
class NexApiTest < ActionDispatch::IntegrationTest
.
.
.
В рельсах 5,
Я использовал этот способ для запуска одного тестового файла (все тесты в одном файле)
rails test -n /TopicsControllerTest/ -v
посмотреть здесь fooobar.com/questions/29266/...
Для запуска одного теста в реальном наборе Rails:
bundle exec ruby -I"railties/test" actionpack/test/template/form_options_helper_test.rb
Это был глупый полуночный вопрос. 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"
Если вы хотите запустить один тест, вы можете просто запустить их как обычный Ruby script
ruby actionmailer/test/mail_layout_test.rb
Вы также можете запустить целый набор (например, ActiveRecord или ActionMailer) с помощью cd
-ing в каталог и запустить 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
Сначала перейдите в папку библиотеки, которую вы хотите протестировать (это важно), а затем запустите:
~/Projects/rails/actionview (master)$ ruby -I test test/template/number_helper_test.rb
В моей ситуации для rake
работает только TESTOPTS="-n='/sample/'"
:
bundle exec rake test TEST=test/system/example_test.rb TESTOPTS="-n='/sample/'"