3
我正在構建我的第一個鳳凰測試。我只是試圖斷言屏幕上有內容。我爲工廠使用ex_machina
,這可能是我的問題,但我不確定?這是我的代碼。Phoenix測試套件在運行測試時找不到列
表:
create table(:locations) do
add :start, :string
add :finish, :string
end
測試:
控制器:
def show(conn, %{"id" => locations_id}) do
locations = Repo.get!(Locations, locations_id)
render conn, "show.html", locations: locations
end
錯誤:
** (Postgrex.Error) ERROR (undefined_column): column "finish" of relation "locations" does not exist
stacktrace:
(ecto) lib/ecto/adapters/sql.ex:463: Ecto.Adapters.SQL.struct/6
(ecto) lib/ecto/repo/schema.ex:397: Ecto.Repo.Schema.apply/4
(ecto) lib/ecto/repo/schema.ex:193: anonymous fn/11 in Ecto.Repo.Schema.do_insert/4
(ecto) lib/ecto/repo/schema.ex:124: Ecto.Repo.Schema.insert!/4
test/controllers/locations_controller_test.exs:8: (test)
您可以嘗試重新創建數據庫的測試環境。然後重新檢查是否存在數據庫表「位置」列「完成」。 –
如何重新創建數據庫? – Bitwise
'MIX_ENV = test mix ecto.drop'或'psql -U postgres -c「DROP DATABASE awesome_lunch_test;」'。在第二種方法中,您可能有不同的數據庫用戶名和數據庫名稱(測試配置存儲在'config/test.exs'中)。然後,只需運行測試 - 數據庫將在測試運行之前創建。 –