Mix not fetching deps' deps in test env

Apologies for the tongue twister subject. I just upgraded to Elixir 1.4 and cleaned up my deps. My dev environment runs fine, but when I try to run my tests, I’m getting an error that a file is missing.

Specifically, I no longer have http_server in my deps folder (presumably from running mix deps.clean), even though it is explicitly listed in the deps of ExVCR, which I have as a test-only dep in my application.

I tried running mix deps.get --only test and mix deps.get --no-archive-check but neither pulled in http_server.

The compiler is looking for it, but Mix seems to overlook it. Am I missing something?

Mix file configuration below.

My application deps:

{:exvcr, "~> 0.7", only: [:test, :integration_test]}

In ExVCR deps:

{:http_server, github: "parroty/http_server", only: [:dev, :test]}

Hex only includes other hex packages as dependencies. See the “Dependencies” section on https://hex.pm/docs/publish.

Plus I think even if “http_server” was another hex depencency it wouldn’t be included because of the :dev, :test constraint.

So what that means is, if you need http_server in your project, you need to explicitly add it in your own mix.exs.

Ah, makes sense. I wonder why I never saw this issue before.