[英]Why does Rails fail to run a single rake test?
我正在嘗試解決我的測試數據庫存在的問題。 目前,我與Agile Web Development 4並肩學習這些章節。 在大約3/4的某個地方,我發現測試數據庫正在持久存儲數據,並且目前正試圖找出發生這種情況的確切位置。 我有一個要運行的orders_controller_test.rb文件。
當我執行
rake test:controllers
rake test test/controllers/orders_controller_test.rb
rake test
測試執行並保留數據。 我想一次測試一個,然后執行以下命令:
rake test test/controllers/orders_controller_test.rb name_of_test
如Rails 4指南中所示。 執行此命令將產生以下結果:
如您所見,它執行測試,但實際上並未執行。 沒有斷言,這使我感到困惑/沮喪。 我已經參考了這篇網絡文章,並嘗試了其中的方法。 運行Rails測試的不同方法
為什么這不能正確執行。 這非常令人沮喪,我懷疑這很簡單。 有人可以幫忙找出可能發生的情況嗎? 幫助將不勝感激。
- - -編輯 - - - - - -
控制器測試
require 'test_helper'
class OrdersControllerTest < ActionController::TestCase
def setup
@order = orders(:one)
end
def teardown
@order = nil
end
test "should get index" do
get :index
assert_response :success
assert_not_nil assigns(:orders)
end
test "should get new" do
get :new
assert_response :redirect
end
test "should create order" do
assert_difference('Order.count') do
post :create, order: { address: @order.address, email: @order.email, name: @order.name, pay_type: @order.pay_type }
end
assert_redirected_to store_path
end
test "should show order" do
get :show, id: @order
assert_response :success
end
test "should get edit" do
get :edit, id: @order
assert_response :success
end
test "should update order" do
patch :update, id: @order, order: { address: @order.address, email: @order.email, name: @order.name, pay_type: @order.pay_type }
assert_redirected_to order_path(assigns(:order))
end
test "should destroy order" do
assert_difference('Order.count', -1) do
delete :destroy, id: @order
end
assert_redirected_to orders_path
end
test "requires item in cart" do
get :new
assert_redirected_to store_path
assert_equal flash[:notice], 'Your cart is empty'
end
test "should get new order" do
item = LineItem.new
item.build_cart
item.product = products(:ruby)
item.save!
binding.pry
session[:cart_id] = item.cart.id
get :new
binding.pry
assert_response :success
end
end
您的測試方法名稱似乎不正確。 我相信您必須在方法名稱前加上test_
。
rake test test/controllers/orders_controller_test.rb -n test_should_get_new_order
# or
rake test test/controllers/orders_controller_test.rb - test_should_get_new_order
Rails將test 'some name' do
轉換為test_some_name
來運行測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.