Packages
wallaby
0.30.10
0.31.0
0.30.12
0.30.11
0.30.10
0.30.9
0.30.8
0.30.7
0.30.6
0.30.5
0.30.4
0.30.3
0.30.2
0.30.1
0.30.0
0.29.1
0.29.0
0.28.1
0.28.0
0.27.0
0.26.2
0.26.1
0.26.0
0.25.1
0.25.0
0.24.1
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.0
0.16.1
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.1
0.3.0
0.2.0
0.1.0
0.0.1
Concurrent feature tests for elixir
Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Wallaby.Mixfile do
use Mix.Project
@source_url "https://github.com/elixir-wallaby/wallaby"
@version "0.30.10"
@drivers ~w(selenium chrome)
@selected_driver System.get_env("WALLABY_DRIVER")
@maintainers ["Mitchell Hanberg"]
def project do
[
app: :wallaby,
version: @version,
elixir: "~> 1.12",
elixirc_paths: elixirc_paths(Mix.env()),
build_embedded: Mix.env() == :prod,
start_permanent: Mix.env() == :prod,
package: package(),
description: "Concurrent feature tests for elixir",
deps: deps(),
docs: docs(),
# Custom testing
aliases: ["test.all": ["test", "test.drivers"], "test.drivers": &test_drivers/1],
preferred_cli_env: [
"test.all": :test,
"test.drivers": :test
],
test_paths: test_paths(@selected_driver),
dialyzer: dialyzer()
]
end
def application do
[extra_applications: [:logger], mod: {Wallaby, []}]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
# need the testserver in dev for benchmarks to run
defp elixirc_paths(:dev), do: ["lib", "integration_test/support/test_server.ex"]
defp elixirc_paths(_), do: ["lib"]
defp deps do
[
{:jason, "~> 1.1"},
{:httpoison, "~> 0.12 or ~> 1.0 or ~> 2.0"},
{:web_driver_client, "~> 0.2.0"},
{:dialyxir, "~> 1.0", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:bypass, "~> 1.0.0", only: :test},
{:ex_doc, "~> 0.28", only: :dev},
{:ecto_sql, ">= 3.0.0", optional: true},
{:phoenix_ecto, ">= 3.0.0", optional: true}
]
end
defp package do
[
files: ["lib", "mix.exs", "README.md", "LICENSE.md", "priv"],
maintainers: @maintainers,
licenses: ["MIT"],
links: %{
"Github" => @source_url,
"Sponsor" => "https://github.com/sponsors/mhanberg"
}
]
end
defp docs do
[
extras: ["README.md": [title: "Introduction"]],
source_ref: "v#{@version}",
source_url: @source_url,
main: "readme",
logo: "guides/images/icon.png"
]
end
defp dialyzer do
[
plt_add_apps: [:inets, :phoenix_ecto, :ecto_sql],
ignore_warnings: ".dialyzer_ignore.exs",
list_unused_filters: true
]
end
defp test_paths(driver) when driver in @drivers, do: ["integration_test/#{driver}"]
defp test_paths(_), do: ["test"]
defp test_drivers(args) do
for driver <- @drivers, do: run_integration_test(driver, args)
end
defp run_integration_test(driver, args) do
args = if IO.ANSI.enabled?(), do: ["--color" | args], else: ["--no-color" | args]
IO.puts("==> Running tests for WALLABY_DRIVER=#{driver} mix test")
{_, res} =
System.cmd("mix", ["test" | args],
into: IO.binstream(:stdio, :line),
env: [{"WALLABY_DRIVER", driver}]
)
if res > 0 do
System.at_exit(fn _ -> exit({:shutdown, 1}) end)
end
end
end