Pracuję poprzez samouczek phoenix ale mam ten błąd:Własność Test uruchomiony proces Phoenix błąd w eliksiru 1.3.2
** (DBConnection.OwnershipError) cannot find ownership process for #PID<0.265.0>.
nie używam Task.start
więc nic nie powinno być uruchomiony asynchronicznie, i pomyślałem, że o tryb w tagu unless
byłby wystarczający, aby zapobiec występowaniu tego błędu, w test/support/channel_case.ex
:
setup tags do
:ok = Ecto.Adapters.SQL.Sandbox.checkout(Watchlist.Repo)
unless tags[:async] do
Ecto.Adapters.SQL.Sandbox.mode(Watchlist.Repo, {:shared, self()})
end
:ok
end
Tak, jestem ciekaw, jak rozwiązać ten problem.
To jak go uruchomić:
mix test test/integration/listing_movies_test.exs
używam Elixir 1.3.2
UPDATE
defmodule ListingMoviesIntegrationTest do
use ExUnit.Case, async: true
use Plug.Test
alias Watchlist.Router
@opts Router.init([])
test 'listing movies' do
movie = %Movie{name: "Back to the future", rating: 5}
|> Repo.insert! <== error happens here
conn = conn(:get, "/movies")
response = Router.call(conn, @opts)
assert response.status == 200
assert response.resp_body == movie
end
Pełna ślad stosu:
(db_connection) lib/db_connection.ex:718: DBConnection.checkout/2
(db_connection) lib/db_connection.ex:619: DBConnection.run/3
(db_connection) lib/db_connection.ex:463: DBConnection.prepare_execute/4
(ecto) lib/ecto/adapters/postgres/connection.ex:91: Ecto.Adapters.Postgres.Connection.execute/4
(ecto) lib/ecto/adapters/sql.ex:235: Ecto.Adapters.SQL.sql_call/6
(ecto) lib/ecto/adapters/sql.ex:454: 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/integration/listing_movies_test.exs:13: (test)
aw test_helper który jest faktycznie nazywa się umieścić w oświadczeniu debug:
ExUnit.start
Ecto.Adapters.SQL.Sandbox.mode(Watchlist.Repo, :manual)
Ecto.Adapters.SQL.Sandbox.mode(Watchlist.Repo, {:shared, self()})
Czy możesz opublikować kod z samego testu? – rozap
@rozap - dodany kod –
możesz pokazać nam, co masz w testowym pomocniku? Czy mógłbyś pokazać nam pełny komunikat o błędzie. – ash