Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 68 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
[![pypi version](https://img.shields.io/pypi/v/ModuleTester.svg)](https://pypi.org/project/ModuleTester/)
[![PyPI status](https://img.shields.io/pypi/status/ModuleTester.svg)](https://github.com/Codra-Ingenierie-Informatique/ModuleTester)
[![PyPI pyversions](https://img.shields.io/pypi/pyversions/ModuleTester.svg)](https://pypi.python.org/pypi/ModuleTester/)
[![CI](https://github.com/Codra-Ingenierie-Informatique/ModuleTester/actions/workflows/test.yml/badge.svg)](https://github.com/Codra-Ingenierie-Informatique/ModuleTester/actions/workflows/test.yml)

ℹ️ Created by [Codra](https://codra.net/) (Pierre Bouchaudon, Pedro Rodriguez, and [Pierre Raybaut](https://github.com/PierreRaybaut)) in 2023, developed and maintained by ModuleTester open-source project team with the support of [Codra](https://codra.net/).
ℹ️ Created by [Codra](https://codra.net/) in 2023, developed and maintained by ModuleTester open-source project team with the support of [Codra](https://codra.net/).

ℹ️ ModuleTester is powered by [PlotPyStack](https://github.com/PlotPyStack) 🚀.

Expand All @@ -15,24 +16,79 @@

## Overview

ModuleTester is a Python package providing a GUI to manage and run tests.
ModuleTester is a GUI and CLI test management tool for Python packages. It
automatically discovers test scripts, runs them, and generates detailed reports
in multiple formats.

ModuleTester is a spin-off of the [DataLab](https://github.com/Codra-Ingenierie-Informatique/DataLab),
mainly used to test [PlotPyStack](https://github.com/PlotPyStack) libraries
and [DataLab](https://github.com/Codra-Ingenierie-Informatique/DataLab) itself.
**Key features:**

![ModuleTester](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/ModuleTester/main/doc/images/shots/empty.png)
- **Dockable panel layout** — fully customizable workspace with resizable,
floatable panels
- **Tree view navigation** — hierarchical test browser with status icons,
notifications, and live spinner during execution
- **Multi-format export** — generate reports in HTML, DOCX, ODT, PDF, Markdown,
and reStructuredText via a Jinja2-based engine
- **CLI support** — run tests and export reports without the GUI
(`moduletester-cli run`, `moduletester-cli export`)
- **Built-in configuration editor** — edit settings directly in the GUI with
error handling and conflict resolution
- **Notification system** — visual indicators on tabs and tree items for new
output and errors

ModuleTester is a spin-off of [DataLab](https://github.com/Codra-Ingenierie-Informatique/DataLab)
and is used to test [PlotPyStack](https://github.com/PlotPyStack) libraries.

See [home page](https://github.com/Codra-Ingenierie-Informatique/ModuleTester/) and
[documentation](https://moduletester.readthedocs.io/en/latest/) for more details on
the library and [changelog](https://github.com/Codra-Ingenierie-Informatique/ModuleTester/blob/main/CHANGELOG.md) for recent history of changes.
![ModuleTester — empty window](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/ModuleTester/main/doc/images/shots/empty.png)

## Quick Start

1. **Install** ModuleTester:

```bash
pip install ModuleTester
```

2. **Mark test scripts** you want to see in the GUI by adding a comment at the
top of each script:

```python
# guitest: show
```

3. **Launch the GUI** on your package:

```bash
moduletester --module mypackage
```

Or use the **CLI** to run tests headlessly:

```bash
moduletester-cli run mypackage
```

4. **Export a report**:

```bash
moduletester-cli export mypackage --output report.html
```

## Example

Using ModuleTester on `guidata` Python package:
Using ModuleTester on the `guidata` Python package — the tree view shows test
hierarchy and execution status, while dockable panels display test properties,
output, and errors:

![ModuleTester — guidata tests](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/ModuleTester/main/doc/images/shots/guidata.moduletester.png)

## Documentation

Full documentation is available at
[moduletester.readthedocs.io](https://moduletester.readthedocs.io/en/latest/).

![ModuleTester](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/ModuleTester/main/doc/images/shots/guidata.moduletester.png)
- [Installation guide](https://moduletester.readthedocs.io/en/latest/installation.html)
- [Usage (GUI & CLI)](https://moduletester.readthedocs.io/en/latest/usage.html)
- [Changelog](https://github.com/Codra-Ingenierie-Informatique/ModuleTester/blob/main/CHANGELOG.md)

## Credits

Expand All @@ -43,5 +99,5 @@ Copyrights and licensing:

## Dependencies and other installation methods

See [Installation](https://ModuleTester.readthedocs.io/en/latest/installation.html)
See [Installation](https://moduletester.readthedocs.io/en/latest/installation.html)
section in the documentation for more details.
5 changes: 3 additions & 2 deletions doc/example.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ Example
.. figure:: images/shots/empty.png
:align: center

Running ModuleTester lead to an empty window
ModuleTester main window with dockable panels and tree view navigation

.. figure:: images/shots/guidata.moduletester.png
:align: center

Using ModuleTester on `guidata` Python package
Running tests on the ``guidata`` package — tree view with status icons, test
properties, and execution results panels
Binary file modified doc/images/shots/empty.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/images/shots/guidata.moduletester.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading