title: Programming Phoenix Dependencies, error no matching function
body: <pre><code>** (FunctionClauseError) no function clause matching in :gen.call/4
      (stdlib) gen.erl:150: :gen.call(#PID&lt;0.2976.0&gt;, :"$gen_call", :mode, :manual)
      (elixir) lib/gen_server.ex:601: GenServer.call/3
      (elixir) lib/code.ex:363: Code.require_file/2
      (elixir) lib/enum.ex:651: Enum."-each/2-lists^foreach/1-0-"/2
      (elixir) lib/enum.ex:651: Enum.each/2
  </code></pre>
  
  <hr>
  
  <pre><code>erl -v
  Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:8:8] 
                [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
  
  Eshell V8.2  (abort with ^G)
  </code></pre>
  
  <hr>
  
  <pre><code>elixir -v
  Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:8:8]
                [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
  
  Elixir 1.3.4
  </code></pre>
  
  <p>Mix file</p>
  
  <pre><code>defmodule Rumbl.Mixfile do
    use Mix.Project
  
    def project do
      [app: :rumbl,
       version: "0.0.1",
       elixir: "~&gt; 1.2",
       elixirc_paths: elixirc_paths(Mix.env),
       compilers: [:phoenix, :gettext] ++ Mix.compilers,
       build_embedded: Mix.env == :prod,
       start_permanent: Mix.env == :prod,
       aliases: aliases(),
       deps: deps()]
    end
  
    # Configuration for the OTP application.
    #
    # Type `mix help compile.app` for more information.
    def application do
      [mod: {Rumbl, []},
       applications: [:phoenix, :phoenix_html, :cowboy, :logger, :gettext,
                      :phoenix_ecto, :postgrex, :comeonin]]
    end
  
    # Specifies which paths to compile per environment.
    defp elixirc_paths(:test), do: ["lib", "web", "test/support"]
    defp elixirc_paths(_),     do: ["lib", "web"]
  
    # Specifies your project dependencies.
    #
    # Type `mix help deps` for examples and options.
    defp deps do
      [{:phoenix, "~&gt; 1.1.6"},
       {:phoenix_ecto, "~&gt; 2.0.1"},
       {:postgrex, "&gt;= 0.0.0"},
       {:phoenix_html, "~&gt; 2.6.0"},
       {:phoenix_live_reload, "~&gt; 1.0", only: :dev},
       {:gettext, "~&gt; 0.9"},
       {:cowboy, "~&gt; 1.0"},
       {:comeonin, "~&gt; 2.0"}]
    end
  
    # Aliases are shortcut or tasks specific to the current project.
    # For example, to create, migrate and run the seeds file at once:
    #
    #     $ mix ecto.setup
    #
    # See the documentation for `Mix` for more info on aliases.
    defp aliases do
      ["ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
       "ecto.reset": ["ecto.drop", "ecto.setup"]]
    end
  end
  </code></pre>
  
  <p><code>$ mix compile</code> seems to work, but <code>$ mix test</code> returns the above error.</p>
  
  <p>Any help is appreciated!</p>
  
  <p>Edit:</p>
  
  <p>Also see something like this when running phoenix.server.</p>
  
  <pre><code>testuser at testuserretina in ~/Code/phoenix/Archive/rumbl on master mix phoenix.server
  
  =INFO REPORT==== 14-Feb-2017::18:58:25 ===
  application: logger
  exited: stopped
  type: temporary
  ** (Mix) Could not start application rumbl: Rumbl.start(:normal, []) returned an error: shutdown: failed to start child: Rumbl.Endpoint
  ** (EXIT) an exception was raised:
  ** (RuntimeError) please set root: Path.expand("..", __DIR__) in your endpoint inside config/config.exs in order to use code reloading or watchers
  (phoenix) lib/phoenix/endpoint/adapter.ex:83: Phoenix.Endpoint.Adapter.root!/1
  (phoenix) lib/phoenix/endpoint/adapter.ex:63: anonymous fn/2 in Phoenix.Endpoint.Adapter.watcher_children/3
  (elixir) lib/enum.ex:1184: Enum."-map/2-lists^map/1-0-"/2
  (phoenix) lib/phoenix/endpoint/adapter.ex:21: Phoenix.Endpoint.Adapter.start_link/2
  (stdlib) supervisor.erl:365: :supervisor.do_start_child/2
  (stdlib) supervisor.erl:348: :supervisor.start_children/3
  (stdlib) supervisor.erl:314: :supervisor.init_children/2
  (stdlib) gen_server.erl:328: :gen_server.init_it/6
  (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
  testuser at testuserretina in ~/Code/phoenix/Archive/rumbl on master
  </code></pre>
  
  <p>I wonder what the right dependencies are for going through the Programming Phoenix book.</p>
  
  <p>config.exs</p>
  
  <p>Added config.exs. [Typing random words to get passed code filter]</p>
  
  <pre><code># This file is responsible for configuring your application
  # and its dependencies with the aid of the Mix.Config module.
  #
  # This configuration file is loaded before any dependency and
  # is restricted to this project.
  use Mix.Config
  
  # General application configuration
  config :rumbl,
    ecto_repos: [Rumbl.Repo]
  
  # Configures the endpoint
  config :rumbl, Rumbl.Endpoint,
    url: [host: "localhost"],
    secret_key_base: "ML7Aim+6iTSsIzWRgN82yovHnFmKTApkGvqnGFcxxbPwp33pFGfuDJKDeCByxY9J",
    render_errors: [view: Rumbl.ErrorView, accepts: ~w(html json)],
    pubsub: [name: Rumbl.PubSub,
             adapter: Phoenix.PubSub.PG2]
  
  # Configures Elixir's Logger
  config :logger, :console,
    format: "$time $metadata[$level] $message\n",
    metadata: [:request_id]
  
  # Import environment specific config. This must remain at the bottom
  # of this file so it overrides the configuration defined above.
  import_config "#{Mix.env}.exs"
  </code></pre>