JaCoCo
pre-commit
JaCoCo | pre-commit | |
---|---|---|
7 | 192 | |
4,016 | 12,087 | |
0.5% | 1.7% | |
8.3 | 8.0 | |
11 days ago | 3 days ago | |
Java | Python | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
JaCoCo
-
Apache Maven JaCoCo Configuration
I will use here JaCoCo, where also the JaCoCo-Maven-lugin exists for the usage in your Maven builds. This article will show how to configure the code coverage to finally get the results for unit- and integration-tests.
-
HRV-Mart
In protection rules, I added build workflow in Require status checks to pass before merging. This is to ensure that before merging code in master branch, build should run successfully. I also added Jacoco Code Coverage to make sure that enough unit tests are available in project and Detekt to make sure that code in project is readable. I added them in build configuration. Even if one of them gives error, build will fail. Whenever, someone push code in pull request, build action will run and check if build is running successfully or not.
-
CI/CD with Spring Boot and Jenkins Pipelines
Code coverage analysis tools quantify the amount of tested code, serving as a valuable tool to inform on code structure and testing related decisions. We will make use of JaCoCo, JaCoCo produces reports on multiple kinds of code coverage metrics including instructions, line and branch coverage.
-
How to Use Maven Profiles to Selectively Activate Plugins and Other Configuration from the Command Line
One specific example where I regularly use a profile in this way is for configuring code coverage. In all of my Java projects, I use JaCoCo for generating code coverage reports. I use JaCoCo during the Maven test phase. However, while developing I find it useful at times to exclude coverage reporting to reduce the build time. But in my CI/CD workflows in GitHub Actions, I activate the code coverage profile during pull-requests and pushes to the default branch. For pull-requests, my GitHub Actions workflow comments the code coverage on the PR and uploads the coverage report as a workflow artifact, where I can inspect it as necessary. And during a push to the default branch, my workflow updates coverage badges to keep them up to date with the current state of the default branch. I can also activate the code coverage profile locally while developing, such as prior to submitting a pull-request, to ensure that I didn't miss testing something.
-
Implement DevSecOps to Secure your CI/CD pipeline
In Unit tests, individual software code components are checked if it is working as expected or not. Unit tests isolate a function or module of code and verify its correctness. We can use tools like JaCoCo for Java and Mocha, and Jasmine for NodeJS to generate unit test reports. We can also send these reports to SonarQube which shows us code coverage and the percentage of your code covered by your test cases.
-
Which Jacoco Android plugin you're using for test coverage?
And there is the original jacoco/jacoco: (0.8.7: released this on May 5, 2021), but it's for Java. I'm not sure if we can use it with multiple flavors on Android.
-
Kotlin 1.5.0 – the First Big Release of 2021
Make sure to also update to Jacoco 0.8.7 to avoid test issues: https://github.com/jacoco/jacoco/releases/tag/v0.8.7
pre-commit
-
How to setup Black and pre-commit in python for auto text-formatting on commit
Today we are going to look at how to setup Black (a python code formatter) and pre-commit (a package for handling git hooks in python) to automatically format you code on commit.
-
Implementing Quality Checks In Your Git Workflow With Hooks and pre-commit
# See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: check-toml - id: check-added-large-files - repo: local hooks: - id: tox lint name: tox-validation entry: pdm run tox -e test,lint language: system files: ^src\/.+py$|pyproject.toml|^tests\/.+py$ types_or: [python, toml] pass_filenames: false - id: tox docs name: tox-docs language: system entry: pdm run tox -e docs types_or: [python, rst, toml] files: ^src\/.+py$|pyproject.toml|^docs\/ pass_filenames: false - repo: https://github.com/pdm-project/pdm rev: 2.10.4 # a PDM release exposing the hook hooks: - id: pdm-lock-check - repo: https://github.com/jumanjihouse/pre-commit-hooks rev: 3.0.0 hooks: - id: markdownlint
-
Embracing Modern Python for Web Development
Pre-commit hooks act as the first line of defense in maintaining code quality, seamlessly integrating with linters and code formatters. They automatically execute these tools each time a developer tries to commit code to the repository, ensuring the code adheres to the project's standards. If the hooks detect issues, the commit is paused until the issues are resolved, guaranteeing that only code meeting quality standards makes it into the repository.
- EmacsConf Live Now
-
A Tale of Two Kitchens - Hypermodernizing Your Python Code Base
Pre-commit Hooks: Pre-commit is a tool that can be set up to enforce coding rules and standards before you commit your changes to your code repository. This ensures that you can't even check in (commit) code that doesn't meet your standards. This allows a code reviewer to focus on the architecture of a change while not wasting time with trivial style nitpicks.
-
Things I just don't like about Git
Ah, fair enough!
On my team we use pre-commit[0] a lot. I guess I would define the history to be something like "has this commit ever been run through our pre-commit hooks?". If you rewrite history, you'll (usually) produce commits that have not been through pre-commit (and they've therefore dodged a lot of static checks that might catch code that wasn't working, at that point in time). That gives some manner of objectivity to the "history", although it does depend on each user having their pre-commit hooks activated in their local workspace.
[0]: https://pre-commit.com/
-
Django Code Formatting and Linting Made Easy: A Step-by-Step Pre-commit Hook Tutorial
Pre-commit is a framework for managing and maintaining multi-language pre-commit hooks. It supports hooks for various programming languages. Using this framework, you only have to specify a list of hooks you want to run before every commit, and pre-commit handles the installation and execution of those hooks despite your project’s primary language.
-
Git: fu** the history!
You can learn more here: pre-commit.com
-
[Tool Anouncement] github-distributed-owners - A tool for managing GitHub CODEOWNERS using OWNERS files distributed throughout your code base. Especially helpful for monorepos / multi-team repos
Note this includes support for pre-commit.
-
Packaging Python projects in 2023 from scratch
As a nice next step, you could also add mypy to check your type hints are consistent, and automate running all this via pre-commit hooks set up with… pre-commit.
What are some alternatives?
Cobertura - Cobertura
husky - Git hooks made easy 🐶 woof!
sonar-flutter - SonarQube plugin for Flutter / Dart
gitleaks - Protect and discover secrets using Gitleaks 🔑
Micronaut - Micronaut Application Framework
ruff - An extremely fast Python linter and code formatter, written in Rust.
gradle-android-junit-jacoco-plugin - Gradle plugin that generates JaCoCo reports from an Android Gradle Project
semgrep - Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
proguard-core - Library to read, write, analyze, and process java bytecode
Poetry - Python packaging and dependency management made easy
Cobalt - Standalone unofficial fully-featured Whatsapp Web and Mobile API for Java and Kotlin
pre-commit-golang - Pre-commit hooks for Golang with support for monorepos, the ability to pass arguments and environment variables to all hooks, and the ability to invoke custom go tools.