Packages
espec
1.6.0
1.10.0
1.9.2
1.9.1
1.9.0
1.8.3
1.8.2
1.8.1
1.8.0
1.7.0
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.2
1.2.1
1.2.0
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
0.8.28
0.8.27
0.8.26
0.8.25
0.8.24
0.8.23
0.8.22
0.8.21
0.8.20
0.8.19
0.8.18
0.8.17
0.8.16
0.8.15
0.8.14
0.8.13
0.8.12
0.8.11
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.2
0.4.1
0.4.0
0.3.7
0.3.5
0.3.0
0.2.0
0.1.0
BDD testing framework for Elixir inspired by RSpec.
Current section
Files
Jump to
Current section
Files
lib/espec/configuration.ex
defmodule ESpec.Configuration do
@moduledoc """
Handles ESpec configurations.
@list contains all available keys in config.
"""
@list [
hello: "Description",
before: "Defines before hook",
finally: "Defines finally hook",
silent: "No output",
file_opts: "Run the specific file or spec in the file",
formatters: "Specifies formatters list",
trace: "Detailed output",
out_file: "Output file",
focus: "Run only examples with [focus: true]",
order: "Run specs in the order in which they are declared",
sync: "Ignore async tag and run all specs synchronously",
only: "Run only tests that match the filter",
exclude: "Exclude tests that match the filter",
string: "Run only examples whose full nested descriptions contain string",
seed: "Seeds the random number generator used to randomize tests order",
test: "For test purpose",
shared_specs: "The shared spec files to include",
start_loading_time: "Starts loading files",
finish_loading_time: "Finished loading",
finish_specs_time: "Finished specs",
formatters_timeout:
"How long to wait for the formatters to " <>
"finish formatting (defaults to the GenServer call timeout)"
]
@doc """
Accepts a keyword of options.
Puts options into application environment.
Allows only whitelisted options.
"""
def add(opts) do
opts
|> Enum.each(fn {key, val} ->
if Enum.member?(Keyword.keys(@list), key) do
Application.put_env(:espec, key, val)
end
end)
end
@doc "Returns the value associated with key."
def get(key), do: Application.get_env(:espec, key)
@doc "Returns all options."
def all, do: Application.get_all_env(:espec)
@doc """
Allows to set the config options.
See `ESpec.configure/1`.
"""
def configure(func), do: func.(ESpec.Configuration)
Keyword.keys(@list)
|> Enum.each(fn func ->
def unquote(func)(value) do
ESpec.Configuration.add([{unquote(func), value}])
end
end)
end