Packages
wallaby
0.15.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`)
* `:js_errors` - if Wallaby should re-throw javascript errors in elixir (defaults to true).
* `:js_logger` - IO device where javascript console logs are written to. Defaults to :stdio. This option can also be set to a file or any other io device. You can disable javascript console logging by setting this to `nil`.
* `:phantomjs` - The path to the phantomjs executable (defaults to "phantomjs")
* `:phantomjs_args` - Any extra arguments that should be passed to phantomjs (defaults to "")
"""
use Application
def start(_type, _args) do
import Supervisor.Spec, warn: false
children = [
supervisor(driver, [[name: Driver.Supervisor]])
]
opts = [strategy: :one_for_one, name: Wallaby.Supervisor]
Supervisor.start_link(children, opts)
end
def start_session(opts \\ []) do
driver.start_session(opts)
end
def end_session(session) do
driver.end_session(session)
end
def screenshot_on_failure? do
Application.get_env(:wallaby, :screenshot_on_failure)
end
def js_errors? do
Application.get_env(:wallaby, :js_errors, true)
end
def js_logger do
Application.get_env(:wallaby, :js_logger, :stdio)
end
def phantomjs_path do
Application.get_env(:wallaby, :phantomjs, "phantomjs")
end
def driver do
Application.get_env(:wallaby, :driver, Wallaby.Phantom)
end
end