{"id":13809221,"url":"https://github.com/yeshan333/ex_integration_coveralls","last_synced_at":"2025-04-13T20:52:45.525Z","repository":{"id":41284638,"uuid":"504568226","full_name":"yeshan333/ex_integration_coveralls","owner":"yeshan333","description":"A library for run-time system code line-level coverage analysis.","archived":false,"fork":false,"pushed_at":"2024-05-08T16:25:33.000Z","size":167,"stargazers_count":4,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T04:45:28.976Z","etag":null,"topics":["code-line-level-coverage","coverage","elixir-library","erlang-otp","intergration-test","run-time-analysis","run-time-system"],"latest_commit_sha":null,"homepage":"https://hexdocs.pm/ex_integration_coveralls","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yeshan333.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-17T14:37:50.000Z","updated_at":"2024-05-08T16:25:36.000Z","dependencies_parsed_at":"2024-05-01T17:21:17.842Z","dependency_job_id":"706d6fea-7ff6-4c74-b6f1-b79974d72789","html_url":"https://github.com/yeshan333/ex_integration_coveralls","commit_stats":{"total_commits":53,"total_committers":2,"mean_commits":26.5,"dds":"0.018867924528301883","last_synced_commit":"515ccfd9b604ed5e14d83168134a3de598f1408e"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yeshan333%2Fex_integration_coveralls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yeshan333%2Fex_integration_coveralls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yeshan333%2Fex_integration_coveralls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yeshan333%2Fex_integration_coveralls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yeshan333","download_url":"https://codeload.github.com/yeshan333/ex_integration_coveralls/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248782283,"owners_count":21160716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-line-level-coverage","coverage","elixir-library","erlang-otp","intergration-test","run-time-analysis","run-time-system"],"created_at":"2024-08-04T01:02:10.873Z","updated_at":"2025-04-13T20:52:45.502Z","avatar_url":"https://github.com/yeshan333.png","language":"Elixir","funding_links":[],"categories":["Testing"],"sub_categories":[],"readme":"# ExIntegrationCoveralls\n\n[![Coverage Status](https://coveralls.io/repos/github/yeshan333/ex_integration_coveralls/badge.svg?branch=main)](https://coveralls.io/github/yeshan333/ex_integration_coveralls?branch=main) [![hex.pm version](https://img.shields.io/hexpm/v/ex_integration_coveralls.svg)](https://hex.pm/packages/ex_integration_coveralls) [![hex.pm downloads](https://img.shields.io/hexpm/dt/ex_integration_coveralls.svg)](https://hex.pm/packages/ex_integration_coveralls) [![hex.pm license](https://img.shields.io/hexpm/l/ex_integration_coveralls.svg)](https://github.com/yeshan333/ex_integration_coveralls/blog/main/LICENSE)\n\nA library for run-time system code line-level coverage analysis. You can use it to evaluate the intergration test coverage.\n\n\u003e realistic practice:\n\u003e - [en](https://github.com/yeshan333/explore_ast_app/blob/main/examples/README.md)\n\u003e - [zh_hans 中文版](https://github.com/yeshan333/explore_ast_app/blob/main/examples/README_cn.md)\n\n## Running Tests\n\nTo run tests with coverage data, run the following command:\n\n```shell\nmix test --cover --exclude real_cover\n```\n\n## Installation\n\nThe package can be installed by adding `ex_integration_coveralls` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:ex_integration_coveralls, \"~\u003e 0.9.0\"}\n  ]\nend\n```\n\nThe docs can be found at [https://hexdocs.pm/ex_integration_coveralls](https://hexdocs.pm/ex_integration_coveralls/readme.html).\n\n## Quick Start\n\nOnce your application is release, up and running. You only need the following three steps to do run-time coverage collection:\n\n- Step 1、Connects a shell to the running node which your application is running:\n\n```shell\n/path/bin/your_app remote_console\n```\n\n- Step 2、Specific the application start coverage collection:\n\n```shell\nExIntegrationCoveralls.start_app_cov(\"your_app_name\")\n```\n\nNote: the `your_app_name` must exist in the return app list of  [:application.which_applications](https://www.erlang.org/doc/man/application.html#which_applications-0).\n\n- Step 3、Conduct external testing against the above application. Get run-time coverage or post coverage data to coverage system.\n\n```shell\nExIntegrationCoveralls.get_app_total_cov(\"your_app_name\")\n# post coverage data\nExIntegrationCoveralls.post_app_cov_to_ci(url, extends, \"your_app_name\")\n```\n\nNote: 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:\n\n```shell\n.\n├── bin\n│   ├── explore_ast_app\n│   ├── explore_ast_app.bat\n│   ├── explore_ast_app_rc_exec.sh\n│   ├── no_dot_erlang.boot\n│   └── start_clean.boot\n├── erts-12.1\n│   ├── bin\n│   ├── doc\n│   ├── include\n│   ├── info\n│   ├── lib\n│   └── src\n├── lib\n│   ├── artificery-0.4.3\n│   ├── asn1-5.0.17\n│   ├── certifi-2.9.0\n│   ├── elixir-1.12.3\n│   ├── ex_integration_coveralls-0.4.0 # your running app\n│   ├── explore_ast_app-0.1.0\n│   │   ├── consolidated\n│   │   ├── ebin\n│   │   └── lib                        # source code in here\n│   └── unicode_util_compat-0.7.0\n└── releases\n    ├── 0.1.0\n    ├── RELEASES\n    └── start_erl.data\n```\n\nNote: If you use the [distillery](https://github.com/bitwalker/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.\n\n## License\n\nDistributed under the MIT License. See [LICENSE](LICENSE) for more information.\n\n## Acknowledgements\n\nThanks for these awesome resources that were used during the development of the **ExIntegrationCoveralls**:\n\n- [Erlang cover](https://www.erlang.org/doc/man/cover.html#description)\n- [A brief introduction to BEAM](https://www.erlang.org/blog/a-brief-beam-primer/)\n- [excoveralls](https://github.com/parroty/excoveralls)\n- [BeamFile - A peek into the BEAM file](https://github.com/hrzndhrn/beam_file)\n- [The Elixir AST explorer - ast_ninja](https://github.com/arjan/ast_ninja)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyeshan333%2Fex_integration_coveralls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyeshan333%2Fex_integration_coveralls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyeshan333%2Fex_integration_coveralls/lists"}