Skip to content

Commit 45ca2ad

Browse files
committed
0.1.0
- Initial release
1 parent fa15a79 commit 45ca2ad

File tree

466 files changed

+89676
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

466 files changed

+89676
-0
lines changed

LICENSE

+373
Large diffs are not rendered by default.

README.adoc

+125
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
= JaCoCo XML to HTML in PowerShell
2+
:toc:
3+
:toclevels:
4+
5+
== Support this tool
6+
7+
link:https://ko-fi.com/E1E3VQUK2[image:https://ko-fi.com/img/githubbutton_sm.svg[Ko-fi]]
8+
9+
== Description
10+
11+
JaCoCo (Java Code Coverage) XML to HTML converter written in PowerShell.
12+
13+
JaCoCo is a popular code coverage format used by several languages and tools, including PowerShell's Pester testing
14+
framework.
15+
16+
The best thing about this tool is - it's all PowerShell. You don't need to have Java or any other tool installed in
17+
order to generate an HTML report.
18+
19+
== Showcase
20+
21+
image::doc/statistics.png[alt="statistics preview"]
22+
image::doc/code.png[alt="code coverage preview"]
23+
24+
=== Key features
25+
26+
* Pure PowerShell without dependencies
27+
* Code coverage statistics per group, package and source file
28+
* Source code coverage with colored lines, automatic source code language detection and syntax highlighting
29+
* All supported statistics are covered: instructions, branches, lines, complexity, methods and classes
30+
* Dark and light themes
31+
* Support for custom themes (Bootstrap or your own custom CSS)
32+
* Simple, but rich, well documented configuration (config file) with minimum mandatory fields - exactly 3: XML file,
33+
source code directory and HTML destination directory. The rest are pure customization options.
34+
* Easy integration with Pester
35+
* Mozilla Public License 2.0 (free and open source)
36+
37+
== Installation
38+
39+
=== Prerequisites
40+
41+
* Microsoft PowerShell 7 (link:https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows[Installation instructions])
42+
* For running Pester tests see the link:doc/testing.adoc[Testing guide]
43+
44+
=== Installation
45+
46+
Clone the repository:
47+
48+
[source,shell]
49+
----
50+
git clone https://github.com/constup/JaCoCoXML-to-HTML-PowerShell .
51+
----
52+
53+
or download and unpack a release from link:https://github.com/constup/JaCoCoXML-to-HTML-PowerShell/releases[Releases page]
54+
55+
== How to use
56+
57+
=== Configuration
58+
59+
In order to use this tool, you will need a configuration file. A commented-out configuration file
60+
(link:config.ps1.dist[config.ps1.dist]) is provided, so you can just copy it to your project and run JaCoCo-XML-To-HTML.
61+
Just remember to remove the `.dist` extension.
62+
63+
Mandatory configuration options are:
64+
65+
* `xml_file`: the coverage report XML file;
66+
* `destination_directory`: where you want to save the HTML report. This directory must be empty. The directory will be
67+
created if it does not exist;
68+
* `sources_directory`: root directory where your project's source code is (usually `src/` directory in your project)
69+
70+
The rest of the configuration options are optional. Their description and documentation is available on the
71+
link:doc/configuration.adoc[Configuration] page.
72+
73+
=== Running
74+
75+
Once you have a configuration file with mandatory properties filled, everything is done by calling one command:
76+
77+
[source,shell]
78+
----
79+
pwsh .\constup-jacoco-xml-to-html.ps1 --config /path/to/your/configuration/file
80+
----
81+
82+
=== Themes and customization
83+
84+
By default, JaCoCo XML to HTML will create an HTML with a light theme. To generate a report with a dark theme, set the
85+
theme in your configuration file:
86+
87+
[source,powershell]
88+
----
89+
'theme' = 'dark';
90+
----
91+
92+
More theme and customization options are available on the link:doc/configuration.adoc[Configuration] page.
93+
94+
== More documentation
95+
96+
The following documentation is also available:
97+
98+
* link:doc/configuration.adoc[Configuration] - Additional configuration, themes and customization options
99+
* link:doc/test-tools-integration.adoc[Test Tools Integration] - How to integrate this tool with testing tools
100+
* link:doc/testing.adoc[Testing] - Unit testing with Pester
101+
102+
== 3rd party software licenses
103+
104+
This project uses and is bundled with the following 3rd party software:
105+
106+
* link:https://getbootstrap.com[Bootstrap v5.3] - Copyright (c) 2011-2025 The Bootstrap Authors
107+
** link:https://github.com/twbs/bootstrap/blob/main/LICENSE[MIT License] (official repository)
108+
** link:assets/bootstrap/LICENSE[MIT License] (bundled with this project)
109+
* link:https://highlightjs.org[HighlightJS v11.11] - Copyright (c) 2006, Ivan Sagalaev
110+
** link:https://github.com/highlightjs/highlight.js/blob/main/LICENSE[BSD 3-Clause License] (official repository)
111+
** link:assets/highlightjs/LICENSE[BSD 3-Clause License] (bundled with this project)
112+
* link:https://github.com/wcoder/highlightjs-line-numbers.js[HighlightJS Line Numbers plugin v2.9] - Copyright (c) 2017 Yauheni Pakala
113+
** link:https://github.com/wcoder/highlightjs-line-numbers.js/blob/master/LICENSE[MIT License] (official repository)
114+
** link:assets/highlightjs/LICENSE[MIT License] (bundled with this project)
115+
116+
== Support
117+
118+
If you like this tool or find it useful, consider buying me a nice cup of coffee. Coffee fuels open source.
119+
120+
link:https://ko-fi.com/E1E3VQUK2[image:https://ko-fi.com/img/githubbutton_sm.svg[Ko-fi]]
121+
122+
== License
123+
124+
link:LICENSE[Mozilla Public License 2.0] (also available on Mozilla's website at:
125+
https://www.mozilla.org/en-US/MPL/2.0/[MPL 2.0])

assets/bootstrap/LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2011-2025 The Bootstrap Authors
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in
13+
all copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21+
THE SOFTWARE.

0 commit comments

Comments
 (0)