mix测试不插入数据?

mix test does not insert data?

我写了一个插入模式的测试代码。

defmodule DbServerWeb.GameSchemaTest do
  use ExUnit.Case, async: true
  use DbServer.DataCase

  alias DbServer.Games
  alias DbServer.Schema.Game

  describe "insertion" do
    @valid_params %{game_name: "test_name"}
    @invalid_params %{game_name: nil}

    test "insertion with valid data" do
      assert {:ok, %Game{} = game} = Games.create_game(@valid_params)
      assert game.game_name == "test_name"
    end

    test "insertion with invalid data" do
      assert {:error, %Ecto.Changeset{}} = Games.create_game(@invalid_params)
    end
  end
end

然后终端输出:

.....

Finished in 0.1 seconds
5 tests, 0 failures

Randomized with seed 820825

但是我的游戏里什么都没有table。

 id | game_name | inserted_at | updated_at 
----+-----------+-------------+------------
(0 rows)

测试代码不是通过schema插入数据吗?

您的代码库已设置为沙盒模式。这意味着事务结束后(包装的单元测试)它将为您回滚事务。通常此配置在 test.exs 文件中,但也可以在 test/test_helper.exs

中设置