Packages

Run ExUnit tests from an Elixir OTP Release

Current section

Files

Jump to
ex_unit_release lib mix tasks ex_unit_release_init.ex
Raw

lib/mix/tasks/ex_unit_release_init.ex

defmodule Mix.Tasks.ExUnitRelease.Init do
use Mix.Task
@shortdoc "Generates sample ex_unit tests for releases"
@moduledoc """
Generates sample ex_unit tests for releases.
mix ex_unit_release.init
* creating rel/test/test_helper.exs
* creating rel/test/my_app_test.exs
"""
import Mix.Generator
@switches [
force: :boolean,
quiet: :boolean
]
@aliases [
force: :f
]
def run(args) do
{opts, args} = OptionParser.parse!(args, strict: @switches, aliases: @aliases)
if args != [] do
Mix.raise("Expected \"mix ex_unit_release.init\" without arguments, got: #{inspect(args)}")
end
app =
Mix.Project.config()[:app]
|> to_string()
create_file("rel/test/test_helper.exs", test_helper_text(), opts)
create_file("rel/test/#{app}_test.exs", app_test(Macro.camelize(app)), opts)
end
def test_helper_text,
do: ~S"""
ExUnit.start()
"""
def app_test(app_module),
do: """
defmodule #{app_module}Test do
use ExUnit.Case
test "the truth" do
assert 1 + 1 == 2
end
end
"""
end