ExIntegrationCoveralls

Coverage Statushex.pm versionhex.pm downloadshex.pm license

A library for run-time system code line-level coverage analysis. You can use it to evaluate the intergration test coverage.

realistic practice:

Running Tests

To run tests with coverage data, run the following command:

mix test --cover --exclude real_cover

Installation

The package can be installed by adding ex_integration_coveralls to your list of dependencies in mix.exs:

def deps do
[
{:ex_integration_coveralls, "~> 0.8.2"}
]
end

The docs can be found at https://hexdocs.pm/ex_integration_coveralls.

Quick Start

Once your application is release, up and running. You only need the following three steps to do run-time coverage collection:

/path/bin/your_app remote_console
ExIntegrationCoveralls.start_app_cov("your_app_name")

note: the your_app_name must exist in the return app list of :application.which_applications.

ExIntegrationCoveralls.get_app_total_cov("your_app_name")
# post coverage data
ExIntegrationCoveralls.post_app_cov_to_ci(url, extends, "your_app_name")

Note: Your application release package should include the source code. The general structure is as follows:

.
├── bin
│ ├── explore_ast_app
│ ├── explore_ast_app.bat
│ ├── explore_ast_app_rc_exec.sh
│ ├── no_dot_erlang.boot
│ └── start_clean.boot
├── erts-12.1
│ ├── bin
│ ├── doc
│ ├── include
│ ├── info
│ ├── lib
│ └── src
├── lib
│ ├── artificery-0.4.3
│ ├── asn1-5.0.17
│ ├── certifi-2.9.0
│ ├── elixir-1.12.3
│ ├── ex_integration_coveralls-0.4.0 # your running app
│ ├── explore_ast_app-0.1.0
│ │ ├── consolidated
│ │ ├── ebin
│ │ └── lib # source code in here
│ └── unicode_util_compat-0.7.0
└── releases
├── 0.1.0
├── RELEASES
└── start_erl.data

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgements

Thanks for these awesome resources that were used during the development of the ExIntegrationCoveralls: