Home

Awesome

ExIntegrationCoveralls

Coverage Status hex.pm version hex.pm downloads hex.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.9.0"}
  ]
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. ExIntegrationCoveralls will use the source code to caculate coverage stats. 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

Note: If you use the distillery to get OTP release, and config set include_src: true, then you can get the above structure. But if you use the Elixir origin mix release, this situation needs to be handled manually.

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: