Пользовательская задача смешивания не загружает тестовую среду - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь собрать пользовательскую задачу микширования, которая будет выполнять задачу mix test специализированным способом.Моя задача микширования mix test.pretty.

. До сих пор я написал самую простую в мире пользовательскую задачу микширования:

defmodule Mix.Tasks.Test.Pretty do
  use Mix.Task

  @shortdoc "Simply runs the Hello.say/0 function"
  def run(_) do
    Mix.env(:test)

    Mix.Task.run("test", ["--formatter", "ExPrettyTest.Formatter"])
  end
end

К сожалению, когда я запускаю задачу (mix test.pretty)Я получаю эту ошибку:

** (RuntimeError) не может вызвать операцию песочницы с пулом DBConnection.ConnectionPool.Чтобы использовать изолированную программную среду SQL, настройте ваш пул репозитория следующим образом:

pool: Ecto.Adapters.SQL.Sandbox

(ecto_sql) lib/ecto/adapters/sql/sandbox.ex:491: Ecto.Adapters.SQL.Sandbox.lookup_meta!/1
(ecto_sql) lib/ecto/adapters/sql/sandbox.ex:389: Ecto.Adapters.SQL.Sandbox.mode/2
(elixir) lib/code.ex:767: Code.require_file/2
(elixir) lib/enum.ex:765: Enum."-each/2-lists^foreach/1-0-"/2
(elixir) lib/enum.ex:765: Enum.each/2
(mix) lib/mix/tasks/test.ex:369: Mix.Tasks.Test.run/1
(mix) lib/mix/task.ex:316: Mix.Task.run_task/3
(mix) lib/mix/cli.ex:79: Mix.CLI.run_task/2
(elixir) lib/code.ex:767: Code.require_file/2

отображается , что тестовая среда не загружается -возможно test_helper.exs не был загружен?

Я могу выполнить задачу следующим образом: MIX_ENV=test mix test.pretty, и она отлично работает.Я бы хотел, чтобы это работало без необходимости помещать туда тест MIX_ENV = каждый раз, когда я запускаю задачу.В моей голове весь смысл наличия пользовательского теста состоял в том, чтобы избежать необходимости указывать эту среду и аргумент форматера вручную.

Мой рабочий процесс должен запускать mix test, если есть ошибки, я думаю, что я запускаю mix test.pretty, который дает мне приятный, потрясающий тестовый вывод с использованием механизма пользовательского форматирования в ExUnit.После того, как я исправил ошибки, я могу выбрать, запускать файл довольно или нет, отдельный тест или нет и т. Д.

Спасибо!

1 Ответ

0 голосов
/ 30 января 2019

Вы пытались установить предпочитаемый_cli_env в своем файле mix.exs?

От: https://hexdocs.pm/mix/master/Mix.Task.html

Возможно что-то вроде:

preferred_cli_env: [
  "test.pretty": :test
]

в вашем def project do ... end

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...