diff --git a/README.md b/README.md index 206b315..a34892c 100644 --- a/README.md +++ b/README.md @@ -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) 🚀. @@ -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 @@ -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. diff --git a/doc/example.rst b/doc/example.rst index f4fc067..965fec5 100644 --- a/doc/example.rst +++ b/doc/example.rst @@ -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 diff --git a/doc/images/shots/empty.png b/doc/images/shots/empty.png index 43c87e5..96f2651 100644 Binary files a/doc/images/shots/empty.png and b/doc/images/shots/empty.png differ diff --git a/doc/images/shots/guidata.moduletester.png b/doc/images/shots/guidata.moduletester.png index 6b641c9..ece8a1a 100644 Binary files a/doc/images/shots/guidata.moduletester.png and b/doc/images/shots/guidata.moduletester.png differ