Packages
wallaby
0.8.0
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
lib/wallaby.ex
defmodule Wallaby do
@moduledoc """
A concurrent feature testing library.
## Configuration
Wallaby supports the following options:
* `:pool_size` - Maximum amount of phantoms to run. The default is `:erlang.system_info(:schedulers_online) * 2`.
* `:screenshot_dir` - The directory to store screenshots.
* `:screenshot_on_failure` - if Wallaby should take screenshots on test failures (defaults to `false`).
* `:max_wait_time` - The amount of time that Wallaby should wait to find an element on the page. (defaults to `3_000`)
"""
use Application
def start(_type, _args) do
pool_opts =
[name: {:local, Wallaby.ServerPool},
worker_module: Wallaby.Server,
size: pool_size,
max_overflow: 0]
:poolboy.start_link(pool_opts, [])
end
def start_session(opts \\ []) do
server = :poolboy.checkout(Wallaby.ServerPool)
Wallaby.Driver.create(server, opts)
end
def end_session(%Wallaby.Session{server: server}) do
:poolboy.checkin(Wallaby.ServerPool, server)
end
def screenshot_on_failure? do
Application.get_env(:wallaby, :screenshot_on_failure)
end
def pool_size do
Application.get_env(:wallaby, :pool_size) || default_pool_size
end
defp default_pool_size do
:erlang.system_info(:schedulers_online)
end
end