Packages
excoveralls
0.4.2
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.1
0.17.0
0.16.1
0.16.0
0.15.3
0.15.2
0.15.1
0.15.0
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.3
0.12.2
0.12.1
0.12.0
0.11.2
0.11.1
0.11.0
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
Coverage report tool for Elixir with coveralls.io integration.
Current section
Files
Jump to
Current section
Files
lib/excoveralls/cover.ex
defmodule ExCoveralls.Cover do
@moduledoc """
Wrapper class for Erlang's cover tool.
"""
@doc """
Compile the beam files for coverage analysis.
"""
def compile(compile_path) do
:cover.stop
:cover.start
:cover.compile_beam_directory(compile_path |> to_char_list)
end
@doc """
Returns the relative file path of the specified module.
"""
def module_path(module) do
module.__info__(:compile)[:source]
|> List.to_string
|> Path.relative_to(ExCoveralls.PathReader.base_path)
end
@doc "Wrapper for :cover.modules"
def modules do
:cover.modules |> Enum.filter(&has_compile_info?/1)
end
defp has_compile_info?(module) do
try do
module.__info__(:compile) != nil
rescue
_e in UndefinedFunctionError ->
IO.puts :stderr, "[warning] skipping the module '#{module}' because source information for the module is not available."
false
end
end
@doc "Wrapper for :cover.analyse"
def analyze(module) do
:cover.analyse(module, :calls, :line)
end
end